2014-07-01 10 views
12

का उपयोग कर नेटवर्क (बाहरी) आईपी पते ढूंढना मैं पाइथन के साथ अपने इंटरनेट प्रदाता (बाहरी) आईपी पते (ब्रॉडबैंड या कुछ और) जानना चाहता हूं।पाइथन

उस मशीन से कई मशीनें जुड़े हुए हैं। मैंने अलग-अलग तरीके से कोशिश की लेकिन मुझे केवल स्थानीय और सार्वजनिक आईपी मिल गई। मैं पाइथन के माध्यम से अपना बाहरी आईपी पता कैसे ढूंढूं?

अग्रिम धन्यवाद।

import urllib, json 

data = json.loads(urllib.urlopen("http://ip.jsontest.com/").read()) 
print data["ip"] 

json के बिना::

import urllib, re 

data = re.search('"([0-9.]*)"', urllib.urlopen("http://ip.jsontest.com/").read()).group(1) 
print data 

अन्य तरीका यह ifconfig (= Linux) या ipconfig (= विंडोज़) आदेश पार्स लेकिन साथ देखभाल करने के लिए था

+3

किन तरीकों से आप की कोशिश की है? – heinst

+0

मैंने यह कोशिश की है, 'आयात सॉकेट socket.gethostbyname (socket.gethostname())' अब मुझे आईपी पता मिल रहा है जो मेरी मशीन को सौंपा गया है। नेटवर्क प्रदाता का आईपी पता – Mulagala

+0

@timgeb नहीं है, अगर आपको यह लिंक दिखाई देता है तो http://ipinfodb.com/ आप जान सकते हैं कि मैं वास्तव में क्या चाहता हूं। यहां पूरी जानकारी आ रही है जैसे देश, शहर, प्रदाता आईपी आदि – Mulagala

उत्तर

17

इस स्क्रिप्ट का उपयोग अनुवादित विंडोज सिस्टम (ipconfig का अनुवाद किया गया था)।

लिनक्स के लिए lib का उदाहरण: ifparser

+0

धन्यवाद यह काम कर रहा है। – Mulagala

+0

बहुत ही सुरुचिपूर्ण जवाब! – jedema

3

आपको अपने बाहरी स्रोत का उपयोग करना होगा। Python2.x:

from urllib import urlopen 
import json 
url = 'http://api.hostip.info/get_json.php' 
info = json.loads(urlopen(url).read()) 
print(info['ip']) 

आप अधिक जानकारी चाहते हैं तो आपको info से अधिक मान मुद्रित कर सकते हैं।

गैर अजगर oneliner:

wget -q -O- icanhazip.com 
+0

मैं अजगर 2.7 का उपयोग कर रहा हूँ। क्या यह काम करेगा ...? – Mulagala

+0

@Mulagala ने मेरा जवाब बदल दिया python2.7 – timgeb

+0

काम करना ठीक है – Mulagala

1

मेरी राय में सबसे सरल समाधान

f = requests.request('GET', 'http://myip.dnsomatic.com') 
ip = f.text 

यही सब है।

( https समर्थन के साथ)

from requests import get 

get('https://ipapi.co/ip/').text 

पूरा JSON response

पी.एस.

+0

ध्यान दें कि इसे गैर-डिफ़ॉल्ट अतिरिक्त [पायथन अनुरोध मॉड्यूल] (http://www.python-requests.org) की आवश्यकता होती है। – Forage

+0

बेहतर और अधिक सुरुचिपूर्ण –

11

सुरक्षित विकल्प requests मॉड्यूल https समर्थन के लिए सुविधाजनक है। हालांकि आप httplib आजमा सकते हैं।