从IP地址获取主机名

从IP地址获取主机名

问题描述:

我已经设法使用下面的代码获取连接的客户端IP,但似乎无法获取主机名。从IP地址获取主机名

Globals.connectedIPAddress = "" + IPAddress.Parse(((
    IPEndPoint)_client.Client.RemoteEndPoint).Address.ToString()); 
+4

只是好奇:你的ToString,语法分析的ToString混乱有什么目的? – dtb 2010-07-15 14:25:47

+0

新手芽。如果有更清洁的方式,我想请知道。 – arbme 2010-07-15 15:04:42

嗯,不是每个IP地址的名称。但是,考虑到IPAddress您可以使用Dns.GetHostEntry尝试来解决它。另外请注意,如果它是一个NAT路由器,您将获得路由器的IP地址,而不是他们的实际机器。

而只是为了在评论中解决问题,我同意,有没有点中的ToString /解析/的ToString:

IPAddress address = ((IPEndPoint)_client.Client.RemoteEndPoint).Address; 
Globals.connectedIPAddress = address.ToString(); 
+0

@如果它是一个NAT路由器,你将得到路由器的IP地址,而不是他们的实际机器。 - 是否有可能获得实际的机器名称(域名)? – 2012-01-25 09:22:09

+0

@VijayBalkawade:我希望不会,亲自... – 2012-01-25 09:36:39

+0

@JonSkeet有没有比这更好的方式(2.5年后)?在我的网络中,此方法每次都会引发异常。 – 2013-02-21 05:11:37