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?
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);
}
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
.
string ip = ((IPEndPoint)(testsocket.RemoteEndPoint)).Address.ToString();