⑴ 虚拟网卡和主机物理网卡有什么区别
虚拟网卡是软件模拟的,物理网卡是硬件。
⑵ 虚拟网卡如何接入物理网络,也就是说本机只有一块物理网卡,但是虚拟网卡也要能被局域网交换机识别
虚拟机桥接网卡,把虚拟机的本地连接配置成物理网络的地址,就可以直接识别了,比如你的本地连接地址是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这个是真实网卡(无线网卡)
⑽ 很疑难,虚拟网卡与物理网卡共线
现在我也想这样呵呵,希望解决后告知一声,谢谢