⑴ 虛擬網卡和主機物理網卡有什麼區別
虛擬網卡是軟體模擬的,物理網卡是硬體。
⑵ 虛擬網卡如何接入物理網路,也就是說本機只有一塊物理網卡,但是虛擬網卡也要能被區域網交換機識別
虛擬機橋接網卡,把虛擬機的本地連接配置成物理網路的地址,就可以直接識別了,比如你的本地連接地址是192.168.1.10,你可以把你虛擬機的IP地址配置成192.168.1.11,然後橋接PC,你就可以再你的虛擬機中直接ping 通192.168.1.10這個地址了~~,自然交換機就能識別了~
⑶ 如何區分虛擬網卡與物理網卡
GetAdaptersInfo 可以獲得本機所有網卡的信息,然而這些網卡中可能包括虛擬網卡。例如,若安裝了 VMWare 或者某些 VPN 客戶端軟體,則會出現若干虛擬網卡。它們在形式上與物理網卡幾乎沒有區別。 ipconfig 將它們與本地物理網卡等同對待。
有些人建議使用 MAC 地址中的 "locally administread bit" 來區分。而事實證明這是靠不住的。是目前我找到的比較實用的辦法。
其原理是先由 GetAdaptersInfo 獲取所有網卡的基本信息。然後利用網卡名去注冊表中查找對應的硬體信息。若是物理網卡,其硬體信息中通常會包含 PCI 。
例如,某個網卡的名為 {ACA306D0-1D69-4116-BC2B-919B428AD084}。
他在注冊表中的信息所在位置為:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Network/{4D36E972-E325-11CE-BFC1-08002BE10318}/{ACA306D0-1D69-4116-BC2B-919B428AD084}/Connection
若PnpInstanceID的值以PCI開頭,說明是物理網卡,MediaSubType為01則是常見網卡,02為無線網卡。
以下代碼是從上述網頁中轉貼。該例中僅當網卡為有線物理網卡時才返回true.
⑷ 區分本地網卡是物理網卡還是虛擬網卡
MetaRouter這個好象是虛擬機來的?cpu開銷太大了吧,而且這功能x86是用不了的?就沒別的辦法了嗎?
⑸ 想問一下物理網卡和虛擬網卡的區別是什麼
簡單的說,物理網卡就是硬體,虛擬網卡是軟體;
詳細點說,物理網卡就是安裝在電腦主板上的有線或無線網卡,每塊物理網卡都有不同的且唯一的物流地址(MAC地址);虛擬網卡,則是通過軟體模擬網路環境,構建的虛擬網路適配器,一般是Microsoft Loopback Adapter,通過VPN技術實現虛擬網卡間的區域網通信。
⑹ 虛擬機網卡的三種類型有什麼區別
虛擬機支持三種類型的網路: bridged(橋接模式) NAT(網路地址轉換模式) Host-only(主機模式) 。
bridged(橋接模式):在這種模式下,虛擬系統就像是區域網中的一台獨立的主機,與宿主計算機平等的存在於網路中,你必須像對待區域網中的其他真正的機子一樣來對待它
(比如分配你的區域網所要求的網路地址、子網掩碼、網關等)。
使用bridged模式的虛擬系統和宿主機器的關系:就像連接在同一個Hub上的兩台電腦。
虛擬系統與宿主計算機以及宿主計算機所在網路的其他計算機都可以相互訪問。
如果你想利用VMWare在區域網內新建一個虛擬伺服器,為區域網用戶提供網路服務,就應該選擇橋接模式。
NAT(網路地址轉換模式):這種模式下,虛擬系統的網卡連接到宿主計算機的VMware Network Adapter VMnet8網卡上(宿主計算機安裝了VMWare軟體後會自動添加
VMware Network Adapter VMnet1和VMware Network Adapter VMnet8兩個網卡,當然是在宿主計算機的"網路連接"里查看啰)。
如果你希望你的虛擬系統連接外部網路,這種模式最簡單,虛擬系統不用做任何網路設置就
可以訪問外部網路。
使用NAT模式的虛擬系統和宿主計算機的關系:宿主計算機就相當於是開啟了
DHCP功能的路由器,虛擬系統就是內網中的一台實際的機器,通過路由器的DHCP
服務獲得網路參數。虛擬系統可以訪問宿主計算機所在網路的其他計算機(反之不行),可以與宿主計算機互訪。
Host-only(主機模式):這種模式下,虛擬系統的網卡連接到宿主計算機的VMware Network Adapter VMnet1網卡上。默認情況下,虛擬系統只能與宿主計算機互訪,這也是Host-only的名字的意義。此時相當於兩台機器通過雙絞線直連。
如果你想利用VMWare創建一個與網內其他機器相隔離的虛擬系統,進行某些特殊的網路
調試工作,可以選擇Host-only模式。
⑺ C#如何獲取物理網卡,虛擬網卡,以及無線網卡
/// <summary></summary>
/// 顯示本機各網卡的詳細信息
/// <summary></summary>
public static void ShowNetworkInterfaceMessage()
{
NetworkInterface[] fNetworkInterfaces = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface adapter in fNetworkInterfaces)
{ #region " 網卡類型 " string fCardType = "未知網卡"; string fRegistryKey = "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\" + adapter.Id + "\\Connection";
RegistryKey rk = Registry.LocalMachine.OpenSubKey(fRegistryKey, false); if (rk != null)
{ // 區分 PnpInstanceID
// 如果前面有 PCI 就是本機的真實網卡
// MediaSubType 為 01 則是常見網卡,02為無線網卡。
string fPnpInstanceID = rk.GetValue("PnpInstanceID", "").ToString(); int fMediaSubType = Convert.ToInt32(rk.GetValue("MediaSubType", 0)); if (fPnpInstanceID.Length > 3 &&
fPnpInstanceID.Substring(0, 3) == "PCI")
fCardType = "物理網卡"; else if (fMediaSubType == 1)
fCardType = "虛擬網卡"; else if (fMediaSubType == 2)
fCardType = "無線網卡";
} #endregion
#region 網卡信息
Console.WriteLine("-----------------------------------------------------------");
Console.WriteLine("-- " + fCardType);
Console.WriteLine("-----------------------------------------------------------");
Console.WriteLine("Id .................. : {0}", adapter.Id); // 獲取網路適配器的標識符
Console.WriteLine("Name ................ : {0}", adapter.Name); // 獲取網路適配器的名稱
Console.WriteLine("Description ......... : {0}", adapter.Description); // 獲取介面的描述
Console.WriteLine("Interface type ...... : {0}", adapter.NetworkInterfaceType); // 獲取介面類型
Console.WriteLine("Is receive only...... : {0}", adapter.IsReceiveOnly); // 獲取 Boolean 值,該值指示網路介面是否設置為僅接收數據包。
Console.WriteLine("Multicast............ : {0}", adapter.SupportsMulticast); // 獲取 Boolean 值,該值指示是否啟用網路介面以接收多路廣播數據包。
Console.WriteLine("Speed ............... : {0}", adapter.Speed); // 網路介面的速度
Console.WriteLine("Physical Address .... : {0}", adapter.GetPhysicalAddress().ToString()); // MAC 地址
IPInterfaceProperties fIPInterfaceProperties = adapter.GetIPProperties();
= fIPInterfaceProperties.UnicastAddresses; foreach (UnicastIPAddressInformation UnicastIPAddressInformation in )
{ if (UnicastIPAddressInformation.Address.AddressFamily == AddressFamily.InterNetwork)
Console.WriteLine("Ip Address .......... : {0}", UnicastIPAddressInformation.Address); // Ip 地址 }
Console.WriteLine(); #endregion
}
Console.ReadKey();
}
⑻ windows下判斷網卡是否是虛擬網卡的方式
首先要知道網卡的名字,可以通過GetAdaptersInfo獲取到
然後用GetAdaptersInfo獲取和此名字相同的網卡信息PIP_ADAPTER_INFO結構中的AdapterName欄位。注意AdapterName並不是指我們通常看到的名字,而是一段字元和數字組合的文字,我們通常看到的網卡的名字是Description欄位。
然後用AdapterName欄位中的內容找到注冊表中的對應的位置,可以讓我們找到網卡的相信信息。
網卡信息存在注冊表的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}中,這個鍵下面有一些子鍵,這些子鍵中的NetCfgInstanceId的值對應的就是我們剛才查找到的AdapterName。這個子鍵中的Characteristics的值就可以判斷是否是虛擬網卡,Characteristics本質是一些按位存儲的值得集合:
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的值就可以判斷網卡是虛擬網卡還是物理網卡。
看一下這個值和4進行與運算是否大於0,大於0的就是物理的網卡。
⑼ 怎麼區分計算機上的真實網卡和虛擬網卡
VMware Network Adapter VMnet這個是虛擬網卡
Realtek PCIe GBE Family Controller這個是真實網卡(有線網卡)
1x1 11b/g/n 無線區域網 PCI Express Half Mini這個是真實網卡(無線網卡)
⑽ 很疑難,虛擬網卡與物理網卡共線
現在我也想這樣呵呵,希望解決後告知一聲,謝謝