C# 如果您有计算机名称,如何使用c在局域网上获取计算机的IP#

C# 如果您有计算机名称,如何使用c在局域网上获取计算机的IP#,c#,ip,lan,C#,Ip,Lan,我目前正在编写一个C#程序,将局域网上的一台计算机连接到另一台计算机。 我有接收计算机的计算机名,但ip是动态的,因此它会不时更改 如何获取接收计算机的lan IP地址?(一个类似于192.168.1.#) 您可以将主机名解析为IP,如下所示 string hostName = "www.Google.com"; IPAddress[] addresslist = Dns.GetHostAddresses(hostName); foreach (IPAddress address in ad

我目前正在编写一个C#程序,将局域网上的一台计算机连接到另一台计算机。 我有接收计算机的计算机名,但ip是动态的,因此它会不时更改

如何获取接收计算机的lan IP地址?(一个类似于192.168.1.#)

您可以将主机名解析为IP,如下所示

string hostName = "www.Google.com";
IPAddress[] addresslist = Dns.GetHostAddresses(hostName);

foreach (IPAddress address in addresslist)
{
   string ip = address.ToString();
}

假设基于您的假设,您正在寻找第一个IPv4 ip地址,您可以使用以下地址:

String name = "Name";
IPHostEntry ipHostInfo = Dns.GetHostEntry(name);            
// OR you can get the name of the current computer using 
// IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());                

// Get the first IPv4 address
IPAddress ip = ipHostInfo.AddressList.Where(n => n.AddressFamily == AddressFamily.InterNetwork).First();

重复。很抱歉,我尝试过搜索,但不知道它名为HostName。我似乎无法获取工作的“.Where”部分。它不被识别。4.5它是as特定命名空间的一部分吗?这是4.0,但也应该在3.5中工作。Where是linq,因此您需要使用System.linq;太好了,成功了。谢谢=)