2014-07-01 15 views
12

İnternet sağlayıcı (harici) IP adresimi (geniş bant veya başka bir şey) Python ile bilmek istiyorum.Python kullanarak ağ (harici) IP adresleri bulma

Bu ağa birden çok makine bağlı. Farklı şekilde denedim ama sadece yerel ve kamusal IP makinemi aldım. Harici IP adresimi Python üzerinden nasıl bulabilirim?

Şimdiden teşekkürler.

+3

Ne şekilde çalıştılar

import ipgetter ip=ipgetter.myip() 
? – heinst

+0

Bunu denedim, 'import soketi socket.gethostbyname (socket.gethostname())' .Şimdi makineme atanan ip adresini alıyorum. Değil ağ sağlayıcının ip adresi – Mulagala

+0

@timgeb, bu bağlantıyı görüyorsanız http://ipinfodb.com/ tam olarak ne istediğimi bilirsiniz. Tüm bilgiler geliyor, ülke, şehir, sağlayıcı ip vb – Mulagala

cevap

17

bunu kullanın komut:

import urllib, json 

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

json olmadan:

import urllib, re 

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

Diğer yolu İfconfig (= linux) ya da ipconfig (= pencereler) komutunu ayrıştırmak fakat özen oldu Windows Sistemi çevrilmiştir (ipconfig tercüme edilmiştir).

Linux için kitap örneği: ifparser.

+0

Teşekkür ederim. – Mulagala

+0

Çok zarif cevap! – jedema

3

Güvendiğiniz bir dış kaynağı kullanmanız gerekir. Python2.x: Daha fazla bilgi isterlerse

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

, sen info den fazla değer yazdırabilirsiniz.

Sigara piton oneliner: Bence

wget -q -O- icanhazip.com 
+0

python 2.7 kullanıyorum. Çalışacak mı? – Mulagala

+0

@Mulagala, python2.7 cevabımı değiştirdi – timgeb

+0

İyi çalışıyor – Mulagala

1

basit çözüm

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

Thats hepsi bu.

from requests import get 

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

Komple JSON response

P.S. (https desteği ile)

+0

Varsayılan olmayan ek [Python istek modülü] (http://www.python-requests.org) gerektirdiğini unutmayın. – Forage

+0

Daha iyi ve daha zarif –

11

Güvenli seçenek requests modülü, https desteği için uygundur. Yine de httplib deneyebilirsiniz.

İlgili konular