设为首页 加入收藏

TOP

使用C++对物理网卡/虚拟网卡进行识别(包含内外网筛选)(二)
2019-08-30 06:15:47 】 浏览:134
Tags:使用 物理 网卡 虚拟 进行 识别 包含 外网 筛选
pterInfo->Description), "virtual")) return true; //去除有MAC的虚拟网卡 vmware if (pIpAdapterInfo->Address[0] == 0x00 && pIpAdapterInfo->Address[1] == 0x05 && pIpAdapterInfo->Address[2] == 0x69) return true; //去除有MAC的虚拟网卡 vmware if (pIpAdapterInfo->Address[0] == 0x00 && pIpAdapterInfo->Address[1] == 0x0C && pIpAdapterInfo->Address[2] == 0x29) return true; //去除有MAC的虚拟网卡 vmware if (pIpAdapterInfo->Address[0] == 0x00 && pIpAdapterInfo->Address[1] == 0x50 && pIpAdapterInfo->Address[2] == 0x56) return true; //去除有MAC的虚拟网卡 vmware if (pIpAdapterInfo->Address[0] == 0x00 && pIpAdapterInfo->Address[1] == 0x1C && pIpAdapterInfo->Address[2] == 0x14) return true; //去除有MAC的虚拟网卡 parallels if (pIpAdapterInfo->Address[0] == 0x00 && pIpAdapterInfo->Address[1] == 0x1C && pIpAdapterInfo->Address[2] == 0x42) return true; //去除有MAC的虚拟网卡 microsoft virtual pc if (pIpAdapterInfo->Address[0] == 0x00 && pIpAdapterInfo->Address[1] == 0x03 && pIpAdapterInfo->Address[2] == 0xFF) return true; //去除有MAC的虚拟网卡 virtual iron if (pIpAdapterInfo->Address[0] == 0x00 && pIpAdapterInfo->Address[1] == 0x0F && pIpAdapterInfo->Address[2] == 0x4B) return true; //去除有MAC的虚拟网卡 red hat xen , oracle vm , xen source, novell xen if (pIpAdapterInfo->Address[0] == 0x00 && pIpAdapterInfo->Address[1] == 0x16 && pIpAdapterInfo->Address[2] == 0x3E) return true; //去除有MAC的虚拟网卡 virtualbox if (pIpAdapterInfo->Address[0] == 0x08 && pIpAdapterInfo->Address[1] == 0x00 && pIpAdapterInfo->Address[2] == 0x27) return true; return false; } /** * @brief 验证是否是0.0.0.0不可用IP * @param pIpAdapterInfo 指向网卡数据的指针 */ BOOL IsInvalidIp(const PIP_ADAPTER_INFO pIpAdapterInfo) { IP_ADDR_STRING *pIpAddrString = &(pIpAdapterInfo->IpAddressList); do { if (!strcmp(pIpAddrString->IpAddress.String, "0.0.0.0")) { return false; } if ((pIpAddrString = pIpAddrString->Next) == NULL) { return true; } } while (pIpAddrString); return true; } /** * @brief 验证是否是内网IP * @param pIpAdapterInfo 指向网卡数据的指针 */ BOOL IsIntranetIP(const PIP_ADAPTER_INFO pIpAdapterInfo) { IP_ADDR_STRING *pIpAddrString = &(pIpAdapterInfo->IpAddressList); do { if (strncmp(pIpAddrString->IpAddress.String, "10", 2) == 0 || (strncmp(pIpAddrString->IpAddress.String, "172.16", 6) > 0 && strncmp(pIpAddrString->IpAddress.String, "172.31", 6) < 0) || strncmp(pIpAddrString->IpAddress.String, "192.168", 7) == 0) { return true; } if ((pIpAddrString = pIpAddrString->Next) == NULL) { return false; } } while (pIpAddrString); return true; }

2. CPP文件(代码应用演示)

/////////////////////////////////////////
//
// FileName : NetCardVer.cpp
// Creator : PeterZ
// Date : 2018-6-21 23:50
// Comment : 网卡信息筛选
// Editor : Visual Studio 2017
//
/////////////////////////////////////////

#include "NetInfoProc.h"

void Output1(PIP_ADAPTER_INFO pIpAdapterInfo); //结果输出1(正常结果)
void Output2(PIP_ADAPTER_INFO pIpAdapterInfo); //结果输出2(删除虚拟网卡的结果)
void Output3(PIP_ADAPTER_INFO pIpAdapterInfo); //结果输出3(去除非PCI物理网卡) >>需
首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇windows下查看端口被占用及处理 下一篇文件比较命令(comp)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目