Получение внешнего IP-адреса машины с Python

Поиск лучшего способа получить машины текущий внешний IP #... Ниже работ, но не полагались бы на внешний сайт для сбора информации... Я ограничиваюсь пользованием стандартными библиотеками Python 2.5.1, связанными Mac OS X 10.5.x

import os
import urllib2

def check_in():

    fqn = os.uname()[1]
    ext_ip = urllib2.urlopen('http://whatismyip.org').read()
    print ("Asset: %s " % fqn, "Checking in from IP#: %s " % ext_ip)
57
задан cit 24 November 2017 в 00:29
поделиться

3 ответа

Если вы находитесь за маршрутизатором, который получает внешний IP-адрес, боюсь, у вас нет другого выхода, кроме как использовать внешнюю службу, как вы. Если у самого маршрутизатора есть какой-либо интерфейс запросов, вы можете его использовать, но решение будет очень зависимым от среды и ненадежным.

27
ответ дан 24 November 2019 в 19:18
поделиться

Если машина является брандмауэром, то ваше решение очень разумно: альтернатива - возможность запросить брандмауэр, что в конечном итоге очень зависит от типа брандмауэра (если это вообще возможно).

1
ответ дан 24 November 2019 в 19:18
поделиться

Если вы считаете, что внешний источник слишком ненадежен, вы можете объединить несколько разных сервисов. Для большинства страниц поиска ip они требуют, чтобы вы соскабливали html, но некоторые из них создали бережливые страницы для скриптов, подобных вашему - также, чтобы они могли уменьшить количество просмотров на своих сайтах:

6
ответ дан 24 November 2019 в 19:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: