获取远程套接字端点的IP地址

获取远程套接字端点的IP地址

问题描述:

如何确定连接的套接字的远程IP地址?获取远程套接字端点的IP地址

我有一个RemoteEndPoint对象,我可以访问以及它的AddressFamily成员。

如何利用这些查找IP地址?

谢谢!

目前正在

IPAddress.Parse(testSocket.Address.Address.ToString()).ToString(); 

并获得1.0.0.127,而不是127.0.0.1的本地主机终点。这是正常的吗?

http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.remoteendpoint.aspx

然后,您可以调用IPEndPoint .. ::。地址的方法来检索远程ip地址和IPEndPoint .. ::。端口的方法来获取远程端口号。从链路

更多(固定起来很多HEH):

Socket s; 

IPEndPoint remoteIpEndPoint = s.RemoteEndPoint as IPEndPoint; 
IPEndPoint localIpEndPoint = s.LocalEndPoint as IPEndPoint; 

if (remoteIpEndPoint != null) 
{ 
    // Using the RemoteEndPoint property. 
    Console.WriteLine("I am connected to " + remoteIpEndPoint.Address + "on port number " + remoteIpEndPoint.Port); 
} 

if (localIpEndPoint != null) 
{ 
    // Using the LocalEndPoint property. 
    Console.WriteLine("My local IpAddress is :" + localIpEndPoint.Address + "I am connected on port number " + localIpEndPoint.Port); 
} 

RemoteEndPoint是一个属性,它的类型是System.Net.EndPointSystem.Net.IPEndPoint继承。

如果你看看IPEndPoint的members,你会发现有一个Address属性。

+1

我看到RemoteEndPoint的所有成员都是AddressFamily。我如何获得地址访问权限? – bobber205 2009-12-14 23:28:25

+1

((System.Net.IPEndPoint)socket.RemoteEndPoint).Address – 2009-12-14 23:33:38

+0

谢谢! :) 我正在尝试 string remoteIP = IPAddress.Parse(testSocket.Address.Address.ToString()).ToString(); 并为本地主机连接获取“1.0.0.127”而不是“127.0.0.1”。这是正常的吗? – bobber205 2009-12-15 00:01:57

string ip = ((IPEndPoint)(testsocket.RemoteEndPoint)).Address.ToString(); 

我做了在VB.NET这段代码,但你可以翻译。 那么假设你有变量客户TcpClient的

Dim ClientRemoteIP As String = Client.Client.RemoteEndPoint.ToString.Remove(Client.Client.RemoteEndPoint.ToString.IndexOf(":")) 

希望它能帮助!干杯。