Є кілька інших способів, які не покладаються на перевірку 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
АБО
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
АБО
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.