现在的位置: 首页 > 综合 > 正文

获取网卡的相关信息

2014年09月05日 ⁄ 综合 ⁄ 共 2752字 ⁄ 字号 评论关闭

导读:

作者姓名 安静
文章原始出处 北京163社区 C版

////////////////////////////////////////////////////////////////
//运行本程序需要安装Microsoft Platform SDK .这个可以去MS下载
// http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
//作者:安静
//mail: aweiken@163.com
//10:56 2002-1-31 start
//14:44 2002-2-2  fix some bug.
//////////////////////////////////////////////////////////////////

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

本文转自
http://www.18839.com/Edu/A11/11005/11/2005120578958.html

抱歉!评论已关闭.