根据DNS获取IP
1 | public static List<string> ipaddressList() |
注意
我们获取到的IP会是多个,这种方法无法获取虚拟网卡
根据网络设备获取IP
获取所有激活设备的IP
1 | public static void GetIP() |
结果:
【以太网】:192.168.2.218
【VMware Network Adapter VMnet1】:192.168.211.1
【VMware Network Adapter VMnet8】:192.168.7.1
【adt_tap_dvr_for_sc】:10.88.19.16
【WLAN】:192.168.3.99
【Loopback Pseudo-Interface 1】:127.0.0.1
如果不添加ni.OperationalStatus == OperationalStatus.Up
,获取到的结果如下:
【以太网 2】:2.0.1.5
【以太网】:192.168.2.218
【本地连接 1】:169.254.229.179
【本地连接 2】:169.254.68.218
【VMware Network Adapter VMnet1】:192.168.211.1
【VMware Network Adapter VMnet8】:192.168.7.1
【adt_tap_dvr_for_sc】:10.88.19.16
【WLAN】:192.168.3.99
【蓝牙网络连接】:169.254.83.215
【Loopback Pseudo-Interface 1】:127.0.0.1
只获取以太网和无线
稍微封装一下方便下拉菜单调用
1 | public static DataTable GetIPList() |
其中:
获取到的设备类型的枚举
NetworkInterfaceType
其中
WLAN是 NetworkInterfaceType.Wireless80211
而有线可能是Ethernet、Ethernet3Megabit或FastEthernetFx
OperationalStatus
类型 | 值 | 说明 |
---|---|---|
Dormant | 5 | 网络接口不处于传输数据包的状态;它正等待外部事件。 |
Down | 2 | 网络接口无法传输数据包。 |
LowerLayerDown | 7 | 网络接口无法传输数据包,因为它运行在一个或多个其他接口之上,而这些“低层”接口中至少有一个已关闭。 |
NotPresent | 6 | 由于缺少组件(通常为硬件组件),网络接口无法传输数据包。 |
Testing | 3 | 网络接口正在运行测试。 |
Unknown | 4 | 网络接口的状态未知。 |
Up | 1 | 网络接口已运行,可以传输数据包。 |
ComboBox中显示
下拉菜单
1 | <ComboBox |
回调
1 | private void ip_cb_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) |
初始化值
1 | DataTable dt = ZConfig.GetIPList(); |