我应该传递什么参数才能在c#中获取工作站ip

时间:2012-10-13 15:52:30

标签: c# console-application

  

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

在控制台应用程序中,我需要传递我的机器的ip,以便我需要传递什么参数?

var myIp = Convert.ToString("");

if (search = value1.Contains(myIp))
{
    foo..
    foo..
}

那么我应该发送什么样的论点,比如我正在使用IPAddress但是没有给我的ip?

2 个答案:

答案 0 :(得分:0)

以下是如何获取机器的IP(IPv4)地址(您可能有多个地址):

var myAddresses = Dns.GetHostEntry(Dns.GetHostName())
                     .AddressList
                     .Where(e => e.AddressFamily == AddressFamily.InterNetwork);

答案 1 :(得分:0)

我不会使用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,正如您在评论中已经注意到的那样。见这里;

How do I get the Local Network IP address of a computer programmatically? (C#)

但除非您特别想要,否则我不会使用DNS。