GetAdaptersInof获取本地连接的网卡信息,排除无线网卡和虚拟网卡

/*

只获取本地连接的网卡信息,并不获取无线网卡和虚拟网卡的信息,要想获取无线网卡的信息,需把if(strstr(pAdapter->Description,"PCI")>0 && pAdapter- >Type==MIB_IF_TYPE_ETHERNET)改成if(strstr(pAdapter->Type==71),若要获取虚拟网卡的信息,需把if(strstr(pAdapter->Description,"PCI")>0 && pAdapter->Type==MIB_IF_TYPE_ETHERNET)改成if(pAdapter->Type==MIB_IF_TYPE_ETHERNET)

*/

#include "stdafx.h"
#include <atlbase.h>
#include <atlconv.h>
#include "iphlpapi.h"
#pragma comment(lib,"Iphlpapi.lib")

int main()
{
PIP_ADAPTER_INFO pAdapterInfo=NULL;
PIP_ADAPTER_INFO pAdapter=NULL;
DWORD dwRetVal=0;
pAdapterInfo=(IP_ADAPTER_INFO*)malloc(sizeof(IP_ADAPTER_INFO));
ULONG ulOutBufLen=sizeof(IP_ADAPTER_INFO);
if(GetAdaptersInfo(pAdapterInfo,&ulOutBufLen)!=ERROR_SUCCESS)
{
GlobalFree(pAdapterInfo);
pAdapterInfo=(IP_ADAPTER_INFO*)malloc(ulOutBufLen);
}
if((dwRetVal=GetAdaptersInfo(pAdapterInfo,&ulOutBufLen))==NO_ERROR)
{
pAdapter=pAdapterInfo;
while(pAdapter)
{
if(strstr(pAdapter->Description,"PCI")>0 && pAdapter->Type==MIB_IF_TYPE_ETHERNET)
{
printf("______________________________________\n");
printf("Name:%s\n",pAdapter->AdapterName);
printf("Desc:%s\n",pAdapter->Description);
for(UINT i=0;i<pAdapter->AddressLength;i++)
{
printf("%02X%c",pAdapter->Address[i],i==pAdapter->AddressLength-1?‘\n‘:‘-‘);
}
printf("Type:%d\n",pAdapter->Type);
printf("Address:%s\n",pAdapter->IpAddressList.IpAddress.String);
printf("Mask:%s\n",pAdapter->IpAddressList.IpMask.String);
printf("Gateway:%s\n",pAdapter->GatewayList.IpAddress.String);
}
pAdapter=pAdapter->Next;
}
}
else
printf("Call to GetAdaptersInfo failed!\n");
return 0;
} 
时间: 2024-12-28 21:18:48

GetAdaptersInof获取本地连接的网卡信息,排除无线网卡和虚拟网卡的相关文章

获取本地连接ip地址(通用版)

@echo off & setlocal enabledelayedexpansionrem 如果系统中有route命令,优先采用方案1:for /f "tokens=3,4" %%a in ('route print^|find "0.0.0.0 0.0.0.0"') do ( set "gate=%%a" & set "ip=%%b")for /f "tokens=2" %%a in (

关闭Windows 系统当前连接的Wifi以及判断物理\虚拟网卡,有线\无线网卡

1.关闭wifi ,调用Api [DllImport("Wlanapi.dll", SetLastError = true)] public static extern uint WlanDisconnect(IntPtr hClientHandle, ref Guid pInterfaceGuid, IntPtr pReserved); 2.获取当前连接wifi 网卡句柄 The WlanOpenHandle function opens a connection to the se

远程桌面连接时获取本地资源的方法

远程桌面连接时获取本地资源的方法有好几种,最常见的应该是FTP,但是FTP需要在远程机器上安装FTP服务器端和在本地机器上安装FTP客户端.在没有安装FTP的情况下,有一种更为便捷的方式,我在这里分享给不知道的朋友. 方法如下: 1.点击开始,运行"mstsc"命令打开远程桌面连接,点击下图标红处的"显示选项": 2.点击下图标红处的"本地资源"选项卡中的"详细信息"按钮: 3.从下图中选择您要获取的本地资源的位置,点击&qu

如何获取本机的本地连接mac

NetworkInterface[] netWorks = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface netWork in netWorks) { if (netWork.Name=="本地连接") { MessageBox.Show(netWork.GetPhysicalAddress().ToString()); } }

获取网络连接名称“本地连接”的两种方法

 方法一:通过WMI得到连接属性NETCON_PROPERTIES,这个结构体定义如下: typedef struct tagNETCON_PROPERTIES { GUID guidId; LPWSTR pszwName; LPWSTR pszwDeviceName; NETCON_STATUS Status; NETCON_MEDIATYPE MediaType; DWORD dwCharacter; CLSID clsidThisObject; CLSID clsidUiObject;

Java Swing界面编程(4)---获取本地字体

ubuntu 安装tp-link usb无线网卡 tl-wn821n 全过程 1.   无线网卡识别 在终端中输入   lsusb  ,观察插入USB无线网卡tl-wn821n,是否多显示出Realtek Semiconductor Corp .如有显示即说明该无线网卡已被ubuntu识别 Bus 002 Device 005: ID 0bda:8178 Realtek Semiconductor Corp.  Bus 002 Device 004: ID 413c:3016 Dell Comp

教大家CMD下一键获取所有连接过的WIFI密码

CMD不知道大家有没有经常用,但其实是很强大的,可以一键获取所有连接过的WIFI密码 Windows 8.Windows 8.1.Windows 10已测试成功!Windows 7没条件测试- 使用方法: 一.以管理员权限运行CMD (以及 开启无线网卡.最好是笔记本) 二.输入命令: for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do  @echo %j | findstr -i -v e

Linux下编程获取本地IP地址的常见方法

转载于:http://blog.csdn.net/k346k346/article/details/48231933 在进行linux网络编程时,经常用到本机IP地址.本文罗列一下常见方法,以备不时之需. 获取本机IP地址,是一个相当灵活的操作,原因是网络地址的设置非常灵活而且都是允许用户进行个性化设置的.比如一台计算机上可以有多块物理网卡或者虚拟网卡,一个网卡上可以绑定多个IP地址,用户可以为网卡设置别名,可以重命名网卡.用户计算机所在网络拓扑结构未知,主机名设置是一个可选项,并且同样可以为一

Android应用开发提高篇(1)-----获取本地IP

链接地址:http://www.cnblogs.com/lknlfy/archive/2012/02/21/2361802.html 一.概述 习惯了Linux下的网络编程,在还没用智能机之前就一直想知道怎么得到手机的IP地址(玩智能机之前我是不搞手机应用的).好了,得知Android是基于Linux内核的,那么不就可以利用之前学的Linux下的网络编程方法来获取IP了吗?呵呵,其实这是比较底层的方法,在Android上,完全可以利用Java的API来实现,而且实现的代码非常简单.下面的实现只可