2009-12-14 9 views
31

मैं कनेक्ट किए गए सॉकेट के दूरस्थ आईपी पते को कैसे निर्धारित करूं?रिमोट सॉकेट एंडपॉइंट का आईपी पता प्राप्त करना

मेरे पास एक रिमोट एंडपॉइंट ऑब्जेक्ट है जिसे मैं एक्सेस कर सकता हूं और साथ ही इसके पते के सदस्य के रूप में भी।

आईपी पता खोजने के लिए मैं इनका उपयोग कैसे करूं?

धन्यवाद!

वर्तमान में

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

की कोशिश कर रहा है और स्थानीय होस्ट अंत अंक के लिए 127.0.0.1 के बजाय 1.0.0.127 रही। क्या यह सामान्य है?

उत्तर

56

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

फिर आप IPEndPoint .. ::। दूरस्थ IPAddress पुनः प्राप्त करने के पता विधि, और IPEndPoint .. :: पोर्ट विधि दूरस्थ पोर्ट संख्या को पुनः प्राप्त करने कॉल कर सकते हैं।। लिंक से

अधिक (बहुत हे तय):

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 एक संपत्ति है, अपने प्रकार System.Net.EndPoint जो System.Net.IPEndPoint से विरासत है।

यदि आप आईपीईंडपॉइंट के members पर एक नज़र डालें, तो आप देखेंगे कि Address संपत्ति है।

+1

रिमोटएंडपॉइंट के सदस्यों के लिए मैं जो भी देखता हूं वह पताफैमिली है। मैं पते तक पहुंच कैसे प्राप्त करूं? – bobber205

+1

((System.Net.IPEndPoint) सॉकेट। रिमोट एंडपॉइंट)। एड्रेस –

+0

धन्यवाद! :) मैं कोशिश कर रहा हूं स्ट्रिंग रिमोटआईपी = आईपीएड्रेस.पर्स (testSocket.Address.Address.ToString())। ToString(); और स्थानीयहोस्ट कनेक्शन के लिए "127.0.0.1" के बजाय "1.0.0.127" प्राप्त करना। क्या यह सामान्य है? – bobber205

0

मैंने यह कोड VB.NET में बनाया है लेकिन आप अनुवाद कर सकते हैं। खैर

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

आशा है कि यह मदद करता है आप चर ग्राहक है नाटक के रूप में एक TcpClient! चीयर्स।