Получения IP-адреса удаленного сокета

Как определить удаленный IP-адрес подключенного сокета?

У меня есть объект RemoteEndPoint, к которому я могу получить доступ, а также его член AddressFamily.

Как использовать их для поиска ip-адреса?

спасибо!

в настоящее время

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

и получение 1.0.0.127 вместо 127.0.0.1 для конечных точек localhost. Это нормально?

4 ответов


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

затем вы можете вызвать IPEndPoint..::.Метод адреса для извлечения удаленного IPAddress и IPEndPoint..::.Способ порт, чтобы получить удаленный порт.

больше из ссылки (исправлено много хех):

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-это собственность, типа


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

Я сделал этот код в VB.NET но ты можешь переводить. Хорошо притворитесь, что у вас есть переменная клиент как TcpClient

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

надеюсь, что это помогает! Овации.