Получение IP-адреса конечной точки удаленного разъема
Как определить удаленный IP-адрес подключенного сокета?
У меня есть объект RemoteEndPoint, к которому я могу получить доступ, а также его член AddressFamily.
Как использовать их для поиска IP-адреса?
Спасибо!
В настоящее время пытается
IPAddress.Parse( testSocket.Address.Address.ToString() ).ToString();
и получить 1.0.0.127 вместо 127.0.0.1 для конечных точек localhost. Это нормально?
Ответы
Ответ 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(":"))
Надеюсь, это поможет! Приветствия.