Ce qui suit est une section de code qui construit une liste d'adresses IP et leurs masques de sous-réseau du système local, mais la fonction Warn semble se déclencher régulièrement, ce qui devrait théoriquement être impossible - car il ne devrait pas être possible Adresse IPv4 sans le masque de sous-réseau associé [?].Pourquoi UnicastIPAddressInformation.IPv4Mask renvoie null sur une adresse IPv4?
static NetworkUtil()
{
foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
{
foreach (UnicastIPAddressInformation address in ni.GetIPProperties().UnicastAddresses)
{
if (address.Address.AddressFamily == AddressFamily.InterNetwork)
{
if (address.IPv4Mask != null)
{
m_subnets.Add(address.Address, address.IPv4Mask);
}
else
{
m_log.Warn("[NetworkUtil] Found IPv4 Address without Subnet Mask!?");
}
}
}
}
}