2009-12-14 25 views
31

Bağlı bir soketin uzak IP adresini nasıl belirlerim?Uzak Yuva Son Noktası IP Adresinin Alınması

Bir RemoteEndPoint nesnesine AccessFamily üyesi olarak erişebiliyorum.

IP adresini bulmak için bunları nasıl kullanırım?

Teşekkürler!

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

çalışıyor ve localhost uç noktaları için 127.0.0.1 yerine 1.0.0.127 alma. Bu normal mi?

cevap

56

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

Ardından :: IPEndPoint .. ::. Uzak IPAdresi almak için Adres yöntemi ve IPEndPoint .. çağırabilir. Liman yöntemi uzak port numarasını almak için. bağlantısından

Daha (çok heh yukarı sabit):

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

RemoteEndPoint bir özellik ise, kendi türü System.Net.IPEndPoint devraldığı System.Net.EndPoint olduğunu.

IPEndPoint'in members modeline bakarsanız, bir Address özelliği olduğunu görürsünüz.

+1

RemoteEndPoint üyeleri için tek görebildiğim AdresFamily'dir. Adrese nasıl erişebilirim? – bobber205

+1

((System.Net.IPEndPoint) socket.RemoteEndPoint) .Adres –

+0

Teşekkür ederiz! :) string remoteIP = IPAddress.Parse (testSocket.Address.Address.ToString()) .ToString(); ve localhost bağlantıları için "127.0.0.1" yerine "1.0.0.127" alınıyor. Bu normal mi? – bobber205

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

Bu kodu VB.NET'te yaptım, ancak çevirebilirsiniz. Eh

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

Umarım yardımcı olur bir TcpClient olarak değişken Client var taklit! Şerefe.

İlgili konular