Подтвердить что ты не робот

Получение IP-адреса конечной точки удаленного разъема

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

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

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

Спасибо!

В настоящее время пытается

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

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

4b9b3361

Ответ 1

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

Затем вы можете вызвать метод IPEndPoint..::. Address для получения удаленного IP-адреса и метод IPEndPoint..::. Port для извлечения номера удаленного порта.

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

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);
}

Ответ 2

RemoteEndPoint является свойством, его тип System.Net.EndPoint, который наследует от System.Net.IPEndPoint.

Если вы посмотрите на IPEndPoint members, вы увидите, что есть свойство Address.

Ответ 3

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

Ответ 4

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

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

Надеюсь, это поможет! Приветствия.