如何在 C# 代码中获取 IP 地址 [重复]

Posted

技术标签:

【中文标题】如何在 C# 代码中获取 IP 地址 [重复]【英文标题】:How to get an IP address in C# code [duplicate] 【发布时间】:2011-04-03 21:28:19 【问题描述】:

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

我需要通过 C# 代码获取运行应用程序的系统的 IP 地址

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”。

【问题讨论】:

听起来像是一道作业题。 ***.com/questions/1069103/…的可能重复 欺骗***.com/questions/1069103/… @Wild,真的吗?我不这么认为... 这周或上周开学了,这是要求学生回答的问题。 【参考方案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;

【讨论】:

【参考方案2】:

给你 - 快速谷歌:

http://msdn.microsoft.com/en-us/library/system.net.ipaddress(v=VS.100).aspx

【讨论】:

以上是关于如何在 C# 代码中获取 IP 地址 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

C# asp.net获取客户端的Ipv4 ip地址[重复]

在C#中获取用户计算机的IP地址[重复]

如何在C#中获取用户的公共IP地址

C#如何在页面中获取本机的外网IP地址

在 WCF 服务 C# 的服务器端获取客户端的 Mac 地址不重复(在 WCF 3.0 中获取客户端 IP 地址)

如何在C#中获取机器的IP地址