2010-07-15 7 views
9

मैं किसी दिए गए आईपी से डोमेन नाम प्राप्त करना चाहता हूं। E.g यदि मैं आईपी को "172.24.17.85" के रूप में देता हूं तो मुझे केवल डोमेन नाम प्राप्त करना चाहिए जैसे कि मेरे डोमेन नाम sonata.net है।सी # में दिए गए आईपी से डोमेन नाम कैसे प्राप्त करें?

सी # में इसके लिए कोई कोड स्निपेट?

उत्तर

24

क्या आपने Dns.GetHostEntry को आजमाया है?

उदाहरण:

using System; 
using System.Net; 

class Test 
{ 
    static void Main(string[] args) 
    { 
     IPAddress addr = IPAddress.Parse("69.59.196.211"); 
     IPHostEntry entry = Dns.GetHostEntry(addr); 
     Console.WriteLine(entry.HostName); // Prints "stackoverflow.com" 
    } 
} 

ध्यान दें कि यह उदाहरण आप दे दी है के लिए काम नहीं किया ... अगर रिवर्स DNS लुकअप काम नहीं करता, मैं नहीं आप क्या कर सकते यकीन है।

1
Console.WriteLine("DomainName: {0}", Dns.GetHostEntry("1.1.1.1").HostName); 
+0

हाय जॉन, अपने कोड ठीक काम करता है, लेकिन जब मैं देना समस्या है किसी भी बाहरी आईपी या अपने खुद के आईपी मैं डोमेन नाम मिलता है लेकिन यदि कोई मशीन है जो वर्तमान inlocal नेटवर्क यह मेरे रिटर्न आईपी है के आईपी देने की कोशिश डोमेन नाम के बजाय पता। Pls मेरी मदद करें .... –

+0

@Swapnil: कमांडलाइन 'nslookup [ip पता] से एक रिवर्स लुकअप आज़माएं और देखें कि आप उस आईपी पते के लिए क्या प्राप्त करते हैं। इसके अलावा, आप 'Dns.GetHostAddresses' का उपयोग करने का प्रयास कर सकते हैं; http://msdn.microsoft.com/en-us/library/system.net.dns.gethostaddresses.aspx –

+0

कमांड प्रॉम्प्ट पर इसका उपयोग करने से मुझे कुछ अन्य पता मिलता है और यदि मैं पते का उपयोग करता हूं तो यह मुझे डोमेन नाम देता है। तो समस्या क्या है जिसे मैं समझने में सक्षम नहीं हूं? –

1

मुझे वास्तव में संदेह है कि यह संभव होने वाला है या नहीं। एक ही आईपी को इंगित करने वाले डोमेन की संख्या n हो सकती है। आप Reverse DNS lookup पर कुछ शोध कर सकते हैं।

संबंधित मुद्दे