利用C++程序获取网卡的相关信息

编程实验

72人已加入

描述

  //////////////////////////////////////////////////////////////////

  #include "stdafx.h"

  #include

  #include

  #include "Iphlpapi.h"

  using namespace std;

  PIP_ADAPTER_INFO pinfo=NULL;

  unsigned long len=0;

  CString macaddress;

  CString  description;

  CString  type;

  CString  subnet;

  CString  IpAddress;

  CString  gateway;

  CString  PrimaryWinsServer;

  CString  dhcp;

  void GetInfo();

  void ParseData();

  void OutPut(CString str);

  void main()

  {

  cout<<"------------------------网卡信息检测---------------------\n";

  GetInfo();

  }

  void GetInfo()

  {

  if (pinfo!=NULL)

  delete (pinfo);

  unsigned long nError;

  nError  =  GetAdaptersInfo(pinfo,&len); //1??üoˉêy

  if (nError==0)

  {

  ParseData();

  }

  if (nError==ERROR_NO_DATA)

  {

  OutPut("没有网络设备信息");

  }

  if (nError==ERROR_NOT_SUPPORTED)

  {

  OutPut("GetAdaptersInfo不支持本系统");

  }

  if (nError==ERROR_BUFFER_OVERFLOW)

  {

  pinfo= (PIP_ADAPTER_INFO)malloc(len);

  nError  =  GetAdaptersInfo(pinfo,&len);

  if (nError==0)

  {

  ParseData();

  }

  }

  return;

  }

  void ParseData()

  {

  if (pinfo!=NULL)

  {

  macaddress.Format("%02X:%02X:%02X:%02X:%02X:%02X",pinfo->Address[0],pinfo->Address[1],pinfo->Address[2],pinfo->Address[3],pinfo->Address[4],pinfo->Address[5]);

  description  =  pinfo->Description;

  type.Format("%d",pinfo->Type);

  PIP_ADDR_STRING pAddressList = &(pinfo->IpAddressList);

  IpAddress  ="";

  do

  {

  IpAddress  +=  pAddressList->IpAddress.String;

  pAddressList = pAddressList->Next;

  if (pAddressList != NULL)

  IpAddress  +="\r\n";

  } while (pAddressList != NULL);

  subnet.Format("%s",pinfo->IpAddressList.IpMask.String);

  gateway.Format("%s",pinfo->GatewayList.IpAddress.String);

  if (pinfo->HaveWins)

  PrimaryWinsServer.Format("%s",pinfo->PrimaryWinsServer.IpAddress.String );

  else

  PrimaryWinsServer.Format("%s","N/A" );

  if (pinfo->DhcpEnabled )

  dhcp.Format("%s",pinfo->DhcpServer.IpAddress.String );

  else

  dhcp.Format("%s","N/A");

  pinfo = pinfo->Next;

  }

  OutPut("网络设备为:\t"+description);

  OutPut("Mac地址为:\t"+macaddress);

  OutPut("网卡类型:\t"+type);

  OutPut("IP地址:\t"+IpAddress);

  OutPut("子网掩码:\t"+subnet);

  OutPut("网关:\t"+gateway);

  OutPut("主Wins服务器:\t"+PrimaryWinsServer);

  OutPut("dhcp服务器:\t"+dhcp);

  }

  void OutPut(CString str)

  {

  cout<

  }

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • C++

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分