2012-10-10 145 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

韓國社交協會這麼多

因此,代碼可以作爲重寫。有效 :)。 –

相關問題