Есть несколько других способов, при которых Python не проверяет внешний веб-сайт, однако ОС может. Ваша основная проблема здесь заключается в том, что даже если вы не использовали Python, если вы использовали командную строку, не существует «встроенных» команд, которые могут просто сообщить вам внешний (WAN) IP. Такие команды, как «ip addr show» и «ifconfig -a», показывают IP-адрес сервера в сети. Только маршрутизатор фактически держит внешний IP. Однако есть способы найти внешний IP-адрес (WAN IP) из командной строки.
Эти примеры:
http://ipecho.net/plain ; echo
curl ipinfo.io/ip
dig +short myip.opendns.com @resolver1.opendns.com
dig TXT +short o-o.myaddr.l.google.com @ns1.google.com
Следовательно, код Python будет:
import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
OR
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
OR
import os
ip = os.popen('dig +short myip.opendns.com @resolver1.opendns.com').readlines(-1)[0].strip()
print ip
Или подключите любой другой из приведенных выше примеров к такой команде, как os.popen, os.popen2, os.popen3 или os.system.