我已设法通过以下代码获取已连接的客户端IP,但似乎无法获取主机名。
Globals.connectedIPAddress = "" + IPAddress.Parse(((
IPEndPoint)_client.Client.RemoteEndPoint).Address.ToString());
答案 0 :(得分:14)
嗯,并非每个IP地址都有名称。但是,鉴于IPAddress
,您可以使用Dns.GetHostEntry
尝试来解决此问题。另请注意,如果它是NAT路由器,您将获得路由器的IP地址而不是实际的机器。
只是为了解决评论中的观点,我同意ToString / Parse / ToString中没有意义:
IPAddress address = ((IPEndPoint)_client.Client.RemoteEndPoint).Address;
Globals.connectedIPAddress = address.ToString();