可能重复:
如何在 C# 中获取我自己的 IP 地址?
在控制台应用程序中,我需要传递我机器的 ip,那么我需要传递什么参数?
var myIp = Convert.ToString("");
if (search = value1.Contains(myIp))
{
foo..
foo..
}
那么我应该发送什么参数,就像我正在使用IPAddress
但没有给出我的 ip 一样?
可能重复:
如何在 C# 中获取我自己的 IP 地址?
在控制台应用程序中,我需要传递我机器的 ip,那么我需要传递什么参数?
var myIp = Convert.ToString("");
if (search = value1.Contains(myIp))
{
foo..
foo..
}
那么我应该发送什么参数,就像我正在使用IPAddress
但没有给出我的 ip 一样?
以下是获取计算机 IP (IPv4) 地址的方法(您可能有多个):
var myAddresses = Dns.GetHostEntry(Dns.GetHostName())
.AddressList
.Where(e => e.AddressFamily == AddressFamily.InterNetwork);
我不会使用 Dns.GetHostEntry() 因为这是一个 DNS 网络调用,在某些情况下它可能会失败。如果是我,我不会通过 DNS 系统查询,我只是使用 WMI 来读取本地硬件上的数据。这是执行此操作的帖子;
http://kodefumaster.wordpress.com/2009/05/01/getting-the-network-adaptor-mac-ip-address-with-wmi/
请记住,每个网卡也可能有多个 IP 地址。
[更新]
...或者更简单, System.Net.NetworkInformation 正如您已经在评论中指出的那样。看这里;
但除非您特别愿意,否则我不会使用 DNS。