1. ホーム
  2. c#

[解決済み] ネットワークインターフェースとその正しいIPv4アドレスを取得するにはどうしたらいいですか?

2023-06-28 14:39:35

質問

すべてのネットワークインターフェイスとその IPv4 アドレスで またはワイヤレスとイーサネットだけです。

すべてのネットワーク インターフェイスの詳細を取得するために、私はこれを使用します。

foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces()) {
    if(ni.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 ||
       ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet) {

        Console.WriteLine(ni.Name);
    }
}

そして、コンピュータのすべてのホストされたIPv4アドレスを取得するために。

IPAddress [] IPS = Dns.GetHostAddresses(Dns.GetHostName());
foreach (IPAddress ip in IPS) {
    if (ip.AddressFamily == AddressFamily.InterNetwork) {

        Console.WriteLine("IP address: " + ip);
    }
}

しかし、どのようにネットワークインターフェイスとその正しいipv4アドレスを取得するのでしょうか?

どのように解決するのですか?

foreach(NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
{
   if(ni.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 || ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
   {
       Console.WriteLine(ni.Name);
       foreach (UnicastIPAddressInformation ip in ni.GetIPProperties().UnicastAddresses)
       {
           if (ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
           {
               Console.WriteLine(ip.Address.ToString());
           }
       }
   }  
}

ip.AddressはIPAddressのことです。