获取网卡的相关信息

////////////////////////////////////////////////////////////////
//运行本程序需要安装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 <iostream>
#include <string.h>
#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<<str.GetBuffer(str.GetLength()) <<endl;
}

时间: 2024-09-10 23:21:36

获取网卡的相关信息的相关文章

php获取服务器操作系统相关信息的方法_php技巧

本文实例讲述了php获取服务器操作系统相关信息的方法.分享给大家供大家参考,具体如下: 下面是PHP获取当前服务器信息的基本语句. PHP程式版本: <?PHP echo PHP_VERSION; ?> ZEND版本: <?PHP echo zend_version(); ?> MYSQL支持: <?php echo function_exists (mysql_close)?"是":"否"; ?> MySQL数据库持续连接 :

.Net中获取打印机的相关信息

原文:.Net中获取打印机的相关信息 新项目中牵涉到对打印机的一些操作,最重要的莫过于获取打印机的状态,IP等信息,代码量不大,但是也是自己花了一点时间总结出来的,希望能帮助需要的朋友. PrinterCommunicate用于连接打印机并发送指令 1 public class PrinterCommunicate 2 { 3 4 public bool CheckNetWorkConnection(string strPrinterIP, int intPrinterPort) 5 { 6 S

Android实现获取应用程序相关信息列表的方法_Android

本文所述为Androdi获取手机应用列表的方法,比如获取到Android应用的软件属性.大小和应用程序路径.应用名称等,获取所有已安装的Android应用列表,包括那些卸载了的,但没有清除数据的应用程序,同时在获取到应用信息的时候,判断是不是系统的应用程序,这是一个应用管理器所必需具备的功能. 具体实现代码如下: //AppInfoProvider.java package com.xh.ui; import java.util.ArrayList; import java.util.List;

Android实现获取应用程序相关信息列表的方法

本文所述为Androdi获取手机应用列表的方法,比如获取到Android应用的软件属性.大小和应用程序路径.应用名称等,获取所有已安装的Android应用列表,包括那些卸载了的,但没有清除数据的应用程序,同时在获取到应用信息的时候,判断是不是系统的应用程序,这是一个应用管理器所必需具备的功能. 具体实现代码如下: //AppInfoProvider.java package com.xh.ui; import java.util.ArrayList; import java.util.List;

asp.net C#获取程序文件相关信息

 代码如下 复制代码 using System.Reflection; using System.Runtime.CompilerServices; // // 有关程序集的常规信息是通过下列 // 属性集控制的.更改这些属性值可修改与程序集 // 关联的信息. // [assembly: AssemblyTitle("")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration(&

C语言实现ifconfig获取网卡接收和发送流量统计

在Windows下我们可以利用ipconfig命令获取网卡的相关信息,在Linux下命令是ifconfig 我们可以 获取的信息更为丰富,其中包括网卡接收和发送的流量,用C语言实现这个命令并不是一件简单的事,由此, 博主经查阅相关资料,得知,网卡的相关信息保存在 /proc/net/dev  这个文件夹下,所以,我们可以 通过读取这个文件里的信息获取相应网卡的信息. 这个文件包含四部分内容,分别是:发送包的个数 ,发送的流量,接收包的个数,接收的流量,同时,由于网络环境在不断的变化之中,所以,这

jQuery.browser对象查看浏览器相关信息的的示例

文章简介:jQuery检测浏览器名称和版本信息. 在jQuery中,可以通过访问$.browser对象的属性来获取浏览器的相关信息.$.browser对象即jQuery.browser对象,用于处理与浏览器相关的事务,该对象的属性如下: 属性名称 说明 webkit 如果是webkit相关的浏览器,则为true,否则为false mozilla 如果是mozilla相关的浏览器,则为true,否则为false safari 如果是safari浏览器,则为true,否则为false opera 如

安卓手机获取当前连接的WIFI相关信息

package com.lenovo.xiaoshan.test; import android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.content.Context; import android.content.Intent; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import and

通过runtime获取对象相关信息

通过runtime获取对象相关信息 在这里,本人给大家提供一个runtime关于NSObject的扩展,用来显示各种NSObject中的信息,这有助于你来分析类的组成:) 先准备以下类供测试: Model.h 与 Model.m // // Model.h // Runtime // // Copyright (c) 2014年 Y.X. All rights reserved. // #import <Foundation/Foundation.h> typedef enum : NSUIn