青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

如何區分虛擬網卡與物理網卡

Posted on 2010-05-19 12:37 S.l.e!ep.¢% 閱讀(6770) 評論(2)  編輯 收藏 引用 所屬分類: VC

若系統中安裝了 VMWare 或者某些 VPN 客戶端軟件,則會出現若干虛擬網卡。它們在形式上與物理網卡幾乎沒有區別。 ipconfig 將它們與本地物理網卡等同對待。 那如何在如何區分虛擬網卡還是物理網卡呢?

有些人建議使用 MAC 地址中的 "locally administread bit" 來區分。但是事實上不能100%區分,在win2000之后的系統基本是行不通的。
http://hi.baidu.com/xzq2000/blog/item/43b686d672cd762f07088b95.html

有人用GetAdaptersInfo 可以獲得本機所有網卡的信息,然后通過判斷是否“pci”開頭來區分是否虛擬網卡。http://blog.csdn.net/aseity/archive/2007/12/11/1929948.aspx 具體代碼如下:(以下代碼引用別處)

bool IsLocalAdapter ( const char *pAdapterName ) const
...{
?BOOL ret_value = FALSE;

#define NET_CARD_KEY "System\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}"
?char szDataBuf[MAX_PATH+1];
?DWORD dwDataLen = MAX_PATH;
?DWORD dwType = REG_SZ;
?HKEY hNetKey = NULL;
?HKEY hLocalNet = NULL;

?if(ERROR_SUCCESS != RegOpenKeyEx(HKEY_LOCAL_MACHINE, NET_CARD_KEY, 0, KEY_READ, &hNetKey))
?return FALSE;
?sprintf(szDataBuf, "%s\Connection", pAdapterName);
?if(ERROR_SUCCESS != RegOpenKeyEx(hNetKey ,szDataBuf ,0 ,KEY_READ, &hLocalNet))
?...{
?RegCloseKey(hNetKey);
?return FALSE;
?}
?if (ERROR_SUCCESS != RegQueryValueEx(hLocalNet, "MediaSubType", 0, &dwType, (BYTE *)szDataBuf, &dwDataLen))
?...{
?goto ret;
?}
?if (*((DWORD *)szDataBuf)!=0x01)
?goto ret;
?dwDataLen = MAX_PATH;
?if (ERROR_SUCCESS != RegQueryValueEx(hLocalNet, "PnpInstanceID", 0, &dwType, (BYTE *)szDataBuf, &dwDataLen))
?...{
?goto ret;
?}
?if (strncmp(szDataBuf, "PCI", strlen("PCI")))
?goto ret;

?ret_value = TRUE;

ret:
?RegCloseKey(hLocalNet);
?RegCloseKey(hNetKey);

?return ret_value!=0;

}


這樣方法基本可以達到目標,但是也存在不能識別所有網卡類型。
還有一種更簡單,而且可以100%識別的方法,就是通過“Characteristics”這個值來確定網卡的類型是虛擬網卡還是物理網卡。

Characteristics 值在注冊表
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\數字下。

在windows中,Characteristics 的取值如下,Characteristics項可以有1個或多個如下的值(多值應計算總和):

十六進制值 名字 描述

ox1 NCF_VIRTUAL 說明組件是個虛擬適配器
ox2 NCF_SOFTWARE_ENUMERATED 說明組件是一個軟件模擬的適配器
ox4 NCF_PHYSICAL 說明組件是一個物理適配器
ox8 NCF_HIDDEN 說明組件不顯示用戶接口
ox10 NCF_NO_SERVICE 說明組件沒有相關的服務(設
備驅動程序)
ox20 NCF_NOT_USER_REMOVABLE 說明不能被用戶刪除(例如,
通過控制面板或設備管理器)
ox40 NCF_MULTIPORT_INSTANCED_ADAPTER 說明組件有多個端口,每個端
口作為單獨的設備安裝。每個
端口有自己的hw_id(組件ID)
并可被單獨安裝,這只適合于
EISA適配器
ox80 NCF_HAS_UI 說明組件支持用戶接口(例如,
Advanced Page或Customer
Properties Sheet)
ox400 NCF_FILTER 說明組件是一個過濾器

從上面可以看出來,只要用戶判斷“Characteristics ”的值就可以判斷網卡是虛擬網卡還是物理網卡。

如果是虛擬網卡:Characteristics & NCF_VIRTUAL ==NCF_VIRTUAL

如果是物理網卡:Characteristics & NCF_PHYSICAL ==NCF_PHYSICAL

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/jianghui3132749/archive/2009/11/25/4868350.aspx

Feedback

# re: 如何區分虛擬網卡與物理網卡  回復  更多評論   

2010-06-18 15:50 by nwling
請問有關Characteristics這個值的資料是從哪里找的,為什么我的機子的取值與你說的不對應,

謝謝

# re: 如何區分虛擬網卡與物理網卡  回復  更多評論   

2010-11-15 15:14 by KIM
目前驗證完全正確。謝謝!
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一区二区| 欧美日本韩国一区| 欧美亚洲三区| 国产精品少妇自拍| 欧美在线视频全部完| 久久香蕉国产线看观看av| 在线看视频不卡| 另类激情亚洲| 日韩亚洲欧美高清| 欧美在线播放视频| 亚洲国产成人在线播放| 欧美激情国产日韩| 亚洲综合好骚| 欧美韩国一区| 亚洲网站在线观看| 好吊色欧美一区二区三区四区| 美女视频一区免费观看| 亚洲国产成人高清精品| 中文国产一区| 国产一区二区精品在线观看| 美女网站久久| 亚洲天堂免费观看| 美女黄网久久| 亚洲在线观看| 亚洲国产一成人久久精品| 国产精品不卡在线| 久久嫩草精品久久久久| 在线视频你懂得一区| 男同欧美伦乱| 亚洲欧美日本在线| 亚洲激情偷拍| 国产日韩欧美不卡在线| 欧美另类专区| 久久久久久午夜| 这里只有精品视频在线| 欧美国产日韩a欧美在线观看| 亚洲欧美精品在线观看| 亚洲精品小视频| 国产无遮挡一区二区三区毛片日本| 欧美电影专区| 久久久久免费视频| 午夜精品久久一牛影视| 亚洲美女淫视频| 欧美高潮视频| 久久一区二区三区四区五区| 亚洲无玛一区| 一区二区av| 亚洲国产欧洲综合997久久| 国产亚洲精品bt天堂精选| 亚洲中字黄色| 国产精品久久久久免费a∨| 免费高清在线一区| 久久精品99| 性欧美暴力猛交69hd| 正在播放亚洲| 9l视频自拍蝌蚪9l视频成人| 欧美黄色精品| 免费成人在线观看视频| 久久久99免费视频| 久久av老司机精品网站导航 | 欧美日韩免费观看一区三区| 久热国产精品| 久久婷婷国产综合国色天香| 欧美诱惑福利视频| 欧美亚洲一区| 欧美亚洲免费电影| 性欧美激情精品| 欧美一区二区三区另类| 性色一区二区| 亚洲综合首页| 亚洲小说欧美另类社区| 亚洲一区二区动漫| 亚洲综合大片69999| 亚洲一二三区精品| 午夜精品理论片| 性欧美8khd高清极品| 久久精品一区二区国产| 久久久久久久91| 久久久免费精品视频| 久久综合精品国产一区二区三区| 久久综合给合久久狠狠色 | 亚洲国产精品高清久久久| 亚洲欧洲免费视频| 亚洲婷婷综合久久一本伊一区| 日韩一区二区精品在线观看| 亚洲毛片在线看| 亚洲视频欧美在线| 香蕉久久一区二区不卡无毒影院| 欧美一区二区三区在线观看| 久久精品五月| 欧美成人免费在线观看| 亚洲美女91| 亚洲中字黄色| 久久久一本精品99久久精品66| 免费欧美视频| 欧美亚韩一区| 国产主播一区二区三区| 亚洲日本在线观看| 亚洲嫩草精品久久| 久久免费视频在线| 最新日韩av| 亚洲性色视频| 久久久精品网| 欧美婷婷六月丁香综合色| 国产亚洲毛片| 亚洲久久成人| 欧美伊人久久| 亚洲国产导航| 亚洲欧美另类中文字幕| 美女亚洲精品| 国产精品久久久久aaaa九色| 黄色成人在线| 在线综合视频| 麻豆精品视频在线观看视频| 日韩亚洲在线| 久久aⅴ国产欧美74aaa| 欧美日韩成人一区二区三区| 国产欧美在线视频| 日韩视频在线一区二区| 久久久久久久国产| 亚洲日本中文字幕区 | 亚洲欧美激情在线视频| 玖玖视频精品| 国产精品久久一区二区三区| 亚洲电影在线免费观看| 欧美一区二区三区免费观看视频| 欧美激情第五页| 午夜亚洲性色福利视频| 欧美美女操人视频| 亚洲二区在线视频| 久久精品一区二区三区中文字幕 | 亚洲精品久久久一区二区三区| 性做久久久久久免费观看欧美| 亚洲国产欧美在线人成| 久久久7777| 国产精品美女主播| 99热免费精品在线观看| 欧美插天视频在线播放| 午夜久久久久久久久久一区二区| 欧美精品成人| 亚洲国产日韩美| 久久香蕉国产线看观看网| 午夜亚洲福利| 国产精品二区二区三区| 9色国产精品| 亚洲福利视频专区| 久久久99免费视频| 国产一区二区看久久| 午夜一区二区三区不卡视频| 亚洲精品你懂的| 久久大综合网| 国产农村妇女毛片精品久久麻豆| 亚洲一级黄色av| 亚洲精品一区中文| 欧美ab在线视频| 91久久国产综合久久91精品网站| 欧美不卡激情三级在线观看| 久久精品国产一区二区三 | 亚洲国产成人精品久久久国产成人一区 | 亚洲在线视频观看| 亚洲精品在线视频观看| 欧美日韩高清在线观看| 亚洲伦伦在线| 亚洲精品男同| 欧美手机在线| 亚洲欧美三级伦理| 亚洲影院在线| 国产欧美在线观看| 久久久精品动漫| 欧美中文字幕视频| 狠狠色丁香久久综合频道| 久久漫画官网| 久久精品亚洲精品| 亚洲福利视频网| 亚洲国产老妈| 欧美日韩综合久久| 久久av红桃一区二区小说| 久久精品观看| 伊大人香蕉综合8在线视| 欧美成人高清| 欧美精品成人91久久久久久久| 一区二区三区黄色| 亚洲视频一区二区在线观看 | 久久久999精品免费| 亚洲国产毛片完整版| 亚洲精品资源美女情侣酒店| 欧美性开放视频| 久久精品国产清高在天天线| 久久偷看各类wc女厕嘘嘘偷窃| 亚洲欧洲日本一区二区三区| 亚洲精品自在久久| 国产免费观看久久黄| 蜜桃av久久久亚洲精品| 欧美不卡激情三级在线观看| 亚洲午夜视频| 久久国产精品久久久久久电车| 亚洲精品乱码久久久久久蜜桃麻豆| 99热免费精品| 国产主播一区二区| 日韩小视频在线观看|