2012-02-15 20 views
33

मेरे कार्यक्रम में एक उपयोगकर्ता एक यूआरएल स्ट्रिंग में प्रवेश करती है, का कहना है कियूआरएल स्ट्रिंग के साथ आईपी पता प्राप्त करें? (जावा)

http://www.engineering.uiowa.edu/~hawkeng//fall01/graphics/potato.gif

मैं इस यूआरएल का IP पता कैसे मिलेगा? मैंने

InetAddress address = InetAddress.getByName(urlStr); 

का उपयोग करने का प्रयास किया लेकिन परिणाम हमेशा वापस आ गया। आईपी ​​पता पाने का सही तरीका क्या है?

उत्तर

49

इस प्रयास करें:

InetAddress address = InetAddress.getByName(new URL(urlString).getHost()); 

कच्चे आईपी प्राप्त करने के लिए:

String ip = address.getHostAddress(); 
+1

धन्यवाद कि काम करने के लिए, हालांकि यह एक नाम/आईपी पते देता है। यदि मैं सॉकेट के लिए आईपी एड्रेस का उपयोग करना चाहता हूं तो क्या मुझे आईपी एड्रेस निकालने के लिए '/' को डिलीमीटर के रूप में इस्तेमाल करने की ज़रूरत है या क्या यह काम करेगा? – user1205853

+2

बस आईपी के स्ट्रिंग संस्करण प्राप्त करने के लिए InetAddess ऑब्जेक्ट पर address.getHostAddress() को कॉल करें। या बेहतर, सॉकेट को सीधे InetAddress ऑब्जेक्ट के साथ बनाएं। – brettw

+0

@brettw: मैंने आपके उत्तर को उसी समय संपादित किया जब आपने टिप्पणी की थी। –

10

आप getByName() विधि के लिए hostname देने की आवश्यकता है और यह

एक मेजबान के आईपी पते रिटर्न , मेजबान का नाम दिया।

URL url = new URL("http://www.engineering.uiowa.edu/~hawkeng//fall01/graphics/potato.gif"); 
System.out.println(url.getHost()); 
InetAddress address = InetAddress.getByName(url.getHost()); 
System.out.println(address.toString()); 

आउटपुट = www.engineering.uiowa.edu/128.255.17.182

IP address

String temp = address.toString(); 
String IP = temp.substring(temp.indexOf("/")+1,temp.length()); 
संबंधित मुद्दे