Подтвердить что ты не робот

Поиск сетевых (внешних) IP-адресов с использованием Python

Я хочу знать свой IP-адрес (внешний) IP-провайдера (широкополосный или что-то еще) с Python.

К этой сети подключено несколько компьютеров. Я пробовал по-другому, но у меня была только локальная и общедоступная IP-машина. Как найти внешний IP-адрес через Python?

Спасибо заранее.

4b9b3361

Ответ 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

Ответ 5

На мой взгляд, самым простым решением является

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

Вот и все.