如何在C#代码中获取IP地址

时间:2010-08-25 18:14:11

标签: c#

  

可能重复:
  How to get my own IP address in C#?

我需要获取系统的IP地址,其中应用程序由C#代码

运行
IPAddress[] ip = Dns.GetHostAddresses(Dns.GetHostName());   
foreach (IPAddress theaddress in ip)
{
    String _ipAddress = theaddress.ToString();
}

我正在使用此代码,但这会在不同的操作系统中产生不同的结果。例如,在Windows 7中它给出“fe80 :: e3:148d:6e5b:bcaa%14”
和Windows XP它给出了“192.168.10.93”。

2 个答案:

答案 0 :(得分:1)

请注意,您可能会为计算机分配多个IP地址。你可以像这样检索它们(注意:这段代码忽略了环回地址):

  var iplist = new List<string>();
  foreach (var iface in NetworkInterface.GetAllNetworkInterfaces())
  {
    var ips = iface.GetIPProperties().UnicastAddresses;
    foreach (var ip in ips)
      if (ip.Address.AddressFamily == AddressFamily.InterNetwork &&
          ip.Address.ToString() != "127.0.0.1")
        iplist.Add(ip.Address.ToString());
  }

使用的命名空间包括:

using System.Net;
using System.Net.NetworkInformation;
using System.Net.Sockets;

答案 1 :(得分:-1)