c# - example - sockets ejemplo
Obtener la dirección IP de un punto final de socket remoto (4)
¿Cómo determino la dirección IP remota de un socket conectado?
Tengo un objeto RemoteEndPoint al que puedo acceder y también como miembro de AddressFamily.
¿Cómo los utilizo para encontrar la dirección IP?
¡Gracias!
Actualmente tratando
IPAddress.Parse( testSocket.Address.Address.ToString() ).ToString();
y obtener 1.0.0.127 en lugar de 127.0.0.1 para los puntos finales del localhost. ¿Esto es normal?
He hecho este código en VB.NET pero puedes traducirlo. Bueno, imagina que tienes la variable Cliente como un TcpClient
Dim ClientRemoteIP As String = Client.Client.RemoteEndPoint.ToString.Remove(Client.Client.RemoteEndPoint.ToString.IndexOf(":"))
¡Espero eso ayude! Aclamaciones.
RemoteEndPoint es una propiedad, su tipo es System.Net.EndPoint que hereda de System.Net.IPEndPoint .
Si echas un vistazo a los members de IPEndPoint, verás que hay una propiedad de Address
.
http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.remoteendpoint.aspx
A continuación, puede llamar al método IPEndPoint .. ::. Address para recuperar la IPAddress remota, y el método IPEndPoint .. ::. Port para recuperar el número de puerto remoto.
Más desde el enlace (arreglado mucho 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);
}
string ip = ((IPEndPoint)(testsocket.RemoteEndPoint)).Address.ToString();