2012-10-10 142 views
0

我有一个套接字服务器来捕获来自客户端的HTTP请求。我想获得客户端的IP,所以我使用了这些代码:无法通过套接字服务器获取客户端IP

var sIp = (socket.RemoteEndPoint.ToString().Split(':'))[0]; 
IPAddress rIp = IPAddress.Parse(sIp); 
string clientIp = rIp.ToString(); 

但IP返回是错误的,有一个例外:'‘哧’扔型‘System.Net.Sockets.SocketException’

的例外

有没有人有这种情况下的解决方案?太多了。

回答

0

MSDN对socket.RemoteEndpoint这样的信息:http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.remoteendpoint.aspx

的关键部分是“获取任何信息之前,必须先施放此端点的IPEndPoint。”

IPEndPoint remoteIP = (IPEndpoint)socket.RemoteEndPoint(); 
IPAddress rIp = (IpAddress)remoteIP.Address; 
string clientIP = rIp.ToString() 

但是不需要撕裂你可能只是这样做:

IPEndPoint remoteIP = (IPEndpoint)socket.RemoteEndPoint(); 
string clientIP = remoteIP.Address.ToString(); 
+0

韩国社交协会这么多

因此,代码可以作为重写。有效 :)。 –

相关问题