2011-07-23 9 views
5

मुझे किसी दिए गए होस्टनाम के लिए एक डीएनएसईंडपॉइंट से आईपी पता प्राप्त करने की आवश्यकता है, और इसे आईपीईंडपॉइंट में परिवर्तित करें। मैं ऐसा कैसे कर पाऊंगा? WP7 में Dns.GetHostEntry फ़ंक्शन की कमी है, तो सॉकेट बनाने के बिना ऐसा करने का कोई तरीका है, मेजबान को डेटा भेजना, फिर होस्ट से पिंग प्राप्त करना और होस्ट के आईपी पते को प्राप्त करने के लिए रिमोटएंडपॉइंट प्रॉपर्टी को पढ़ना?WP7 आम - किसी दिए गए होस्टनाम के लिए आईपी पता कैसे प्राप्त करें

उत्तर

5

Microsoft.Phone.Net.NetworkInformation नाम स्थान में DeviceNetworkInformation.ResolveHostNameAsync उपयोग करने का प्रयास तो कृपया, इस तरह:

public void DnsLookup(string hostname) 
{ 
    var endpoint = new DnsEndPoint(hostname, 0); 
    DeviceNetworkInformation.ResolveHostNameAsync(endpoint, OnNameResolved, null); 
} 

private void OnNameResolved(NameResolutionResult result) 
{ 
    IPEndPoint[] endpoints = result.IPEndPoints; 
    // Do something with your endpoints 
} 
2

ढांचे में इसे बनाने का कोई तरीका नहीं है। आप एक सॉकेट assumming का उपयोग कर सकते हैं कि मेजबान पिंग का समर्थन करता है। यह उस नेटवर्क पर निर्भर करेगा जिसमें आप चल रहे हैं (मुझे लगता है कि आप इसे नियंत्रित नहीं कर सकते हैं) और एप्लिकेशन की सटीक आवश्यकताओं।

अपने ऐप को आईपी पते के साथ काम करना आसान हो सकता है और यदि आपके पास कोई आईपी पता है तो होस्टनाम की आवश्यकता नहीं है।

+0

समस्या यह है; मैं गतिशील रूप से असाइन किए गए आईपी पते से निपट रहा हूं जो अक्सर बदलते हैं, और उन्हें नो-आईपी के माध्यम से अपडेट करते हैं, लेकिन मुझे लगता है; माइक्रोसॉफ्ट के साथ एक बार फिर, सबसे अच्छा समाधान कभी-कभी कोई समाधान नहीं होता है। – IDWMaster

+0

मैंने मेजबान आईपी लुकअप के लिए एक यूडीपी सेवा स्थापित करने का अंत किया। इस पल के लिए वास्तव में एक "समाधान" नहीं है, लेकिन इस समय यह सबसे अच्छा कामकाज हो सकता है। – IDWMaster

2

मुझे लगता है कि मैं एक ही समस्या से निपट रहा हूं। मेरे पास नो-आईपी के साथ डीएनएस अपडेट करने वाला एक गतिशील आईपी भी है।

जो मुझे पता है कि System.Net.Dns विंडोज फोन के इस संस्करण में उपलब्ध नहीं है। शायद अगले रिलीज में।

http://msdn.microsoft.com/en-us/library/system.net.dns.aspx

मेरे ऐप के शुरू में मैं मेजबान (उस में वेब सर्वर पर) के लिए वेब सेवा कॉल बनाने के लिए IPAddress के लिए पूछ रहा है। मुझे लगता है कि इस दौरान मैं समस्या हल कर दूंगा।

यह WCF सेवा

[ServiceContract] 
public interface IService1 
{ 
[OperationContract] 
string GetIpAddress(string value); 
} 

public class Service1 : IService1 
{ 
    public string GetIpAddress() 
    { 
    // Add the proper error handling and collection matching of course 
     IPAddress s = Dns.GetHostAddresses("www.mysite.com")[0]; 
     return s.ToString(); 
    } 
    } 

हो सकता है आप लोग एक सीधा दृष्टिकोण मिल जाए मुझे पता

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