// 此代码只支持物理网卡且物理网卡必须处于活动状态
private List<IPAddress> IPActiveAddress
{
get {
var IPAddressCollection = new List<IPAddress>(0);
var Collection = Dns.GetHostAddresses(Dns.GetHostName());
var NetworkInterfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (var MIB2Interface in NetworkInterfaces) {
var IPProperties = MIB2Interface.GetIPProperties();
var UnicastAddresses = IPProperties.UnicastAddresses;
if (UnicastAddresses.Count > 0 && IPProperties.DhcpServerAddresses.Count > 0) {
foreach (var Unicast in UnicastAddresses) {
if (Unicast.Address.AddressFamily != AddressFamily.InterNetworkV6) {
if (IPAddressCollection.IndexOf(Unicast.Address) < 0) {
IPAddressCollection.Add(Unicast.Address);
}
}
}
}
}
return IPAddressCollection;
}
}
// 如果你是虚拟机网卡那么此代码无法识别,不过
// 可以识别处于插上网线或链接Wi-Fi 网段的网卡IP