web-dev-qa-db-fra.com

Obtention de l'adresse IP d'un point de terminaison de socket distant

Comment déterminer l'adresse IP distante d'un socket connecté?

J'ai un objet RemoteEndPoint auquel je peux accéder ainsi que son membre AddressFamily.

Comment les utiliser pour trouver l'adresse IP?

Merci!

Actuellement en cours

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

et obtenir 1.0.0.127 au lieu de 127.0.0.1 pour les points d'extrémité localhost. Est-ce normal?

35
bobber205

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

Vous pouvez ensuite appeler la méthode IPEndPoint .. ::. Address pour récupérer l'adresse IP distante et la méthode IPEndPoint .. ::. Port pour récupérer le numéro de port distant.

Plus du lien (réparé beaucoup 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);
}
61
Cory Charlton

RemoteEndPoint est une propriété, son type est System.Net.EndPoint qui hérite de System.Net.IPEndPoint .

Si vous jetez un oeil à membres d'IPEndPoint, vous verrez qu'il y a une propriété Address.

6
Bertrand Marron
string ip = ((IPEndPoint)(testsocket.RemoteEndPoint)).Address.ToString();
3
user3235770