介绍利用C++程序获取网卡的有关程序

出处:xwj 发布于:2011-09-02 08:23:02

  简述

  C++程序是一门广泛用于工业软件研发的大型语言。具有很高的复杂性和解决问题的能力。C++不仅在开发上极具价值,同时在学术界也就有很高的价值。有关C++的文章应该可以用浩如烟海来形容了吧。C++的经典书籍也是数不胜数。然而,目前开发语言是如此地繁荣,就连微软也在推出了新的开发语言C#。一个不可否认的现实是,在低阶程序设计领域,C++挤压着C同时也在承受着C的强烈反弹,前段时间看了据说是微软操作系统源代码的东东,其中很多还是C语言。而在高阶程序设计领域,Java和C#正在不断蚕食着C++的地盘。也许Java和C#的狂潮终将迫使C++回归本位— 回到它有着根本性优势的开发领域:低级系统程序设计、大规模高性能应用设计、嵌入式程序设计、通用程序设计以及数值科学计算等。果真如此,我认为这未尝不是一件好事。电力系统软件所要求的高性能和大规模数值计算正是C++所擅长的。就我所接触的南瑞和鲁能,很多涉及到电力系统计算的软件如PAS等,都是用C++来开发的。

  写程序首先希望是程序能正确执行,其次是效率能够被接受,再次就是易于维护。C++是一个难学易用的语言。C++提供了太多可选择的东西,而且使用使用C++来写程序可以有四种思考模式:基于过程、基于对象、面向对象和泛型。

  程序如下:

  #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  +="rn";

  } 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<

  }



  

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!