我已經設法使用下面的代碼獲取連接的客戶端IP,但似乎無法獲取主機名。從IP地址獲取主機名
Globals.connectedIPAddress = "" + IPAddress.Parse(((
IPEndPoint)_client.Client.RemoteEndPoint).Address.ToString());
我已經設法使用下面的代碼獲取連接的客戶端IP,但似乎無法獲取主機名。從IP地址獲取主機名
Globals.connectedIPAddress = "" + IPAddress.Parse(((
IPEndPoint)_client.Client.RemoteEndPoint).Address.ToString());
嗯,不是每個IP地址有的名稱。但是,考慮到IPAddress
您可以使用Dns.GetHostEntry
至嘗試來解決它。另外請注意,如果它是一個NAT路由器,您將獲得路由器的IP地址,而不是他們的實際機器。
而只是爲了在評論中解決問題,我同意,有沒有點中的ToString /解析/的ToString:
IPAddress address = ((IPEndPoint)_client.Client.RemoteEndPoint).Address;
Globals.connectedIPAddress = address.ToString();
@如果它是一個NAT路由器,你將得到路由器的IP地址,而不是他們的實際機器。 - 是否有可能獲得實際的機器名稱(域名)? – 2012-01-25 09:22:09
@VijayBalkawade:我希望不會,親自... – 2012-01-25 09:36:39
@JonSkeet有沒有比這更好的方式(2.5年後)?在我的網絡中,此方法每次都會引發異常。 – 2013-02-21 05:11:37
只是好奇:你的ToString,語法分析的ToString混亂有什麼目的? – dtb 2010-07-15 14:25:47
新手芽。如果有更清潔的方式,我想請知道。 – arbme 2010-07-15 15:04:42