Поиск сетевых (внешних) IP-адресов с использованием Python
Я хочу знать свой IP-адрес (внешний) IP-провайдера (широкополосный или что-то еще) с Python.
К этой сети подключено несколько компьютеров. Я пробовал по-другому, но у меня была только локальная и общедоступная IP-машина. Как найти внешний IP-адрес через Python?
Спасибо заранее.
Ответы
Ответ 1
Используйте этот script:
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
Ответ 2
Защищенная опция (с поддержкой https
)
from requests import get
get('https://ipapi.co/ip/').text
Завершить ответ JSON
P.S. Модуль requests
удобен для поддержки https
. Однако вы можете попробовать httplib.
Ответ 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
.
Non-python oneliner:
wget -q -O- icanhazip.com
Ответ 4
Вы можете проверить этот ответ:
fooobar.com/questions/172639/...
TL; ДР:
import ipgetter
ip=ipgetter.myip()
Ответ 5
На мой взгляд, самым простым решением является
f = requests.request('GET', 'http://myip.dnsomatic.com')
ip = f.text
Вот и все.