Поиск лучшего способа получить машины текущий внешний 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)
Если вы находитесь за маршрутизатором, который получает внешний IP-адрес, боюсь, у вас нет другого выхода, кроме как использовать внешнюю службу, как вы. Если у самого маршрутизатора есть какой-либо интерфейс запросов, вы можете его использовать, но решение будет очень зависимым от среды и ненадежным.
Если машина является брандмауэром, то ваше решение очень разумно: альтернатива - возможность запросить брандмауэр, что в конечном итоге очень зависит от типа брандмауэра (если это вообще возможно).
Если вы считаете, что внешний источник слишком ненадежен, вы можете объединить несколько разных сервисов. Для большинства страниц поиска ip они требуют, чтобы вы соскабливали html, но некоторые из них создали бережливые страницы для скриптов, подобных вашему - также, чтобы они могли уменьшить количество просмотров на своих сайтах: