Es gibt einige andere Möglichkeiten, die nicht darauf beruhen, dass Python eine externe Website überprüft, das Betriebssystem kann dies jedoch. Ihr Hauptproblem hierbei ist, dass selbst wenn Sie Python nicht verwenden, wenn Sie die Befehlszeile verwenden, es keine "integrierten" Befehle gibt, die Ihnen einfach die externe (WAN) IP mitteilen können. Befehle wie "ip addr show" und "ifconfig -a" zeigen Ihnen die IP-Adresse des Servers im Netzwerk. Nur der Router hält tatsächlich die externe IP. Es gibt jedoch Möglichkeiten, die externe IP-Adresse (WAN-IP) über die Befehlszeile zu ermitteln.
Diese Beispiele sind:
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
Daher wäre der Python-Code:
import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
ODER
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
ODER
import os
ip = os.popen('dig +short myip.opendns.com @resolver1.opendns.com').readlines(-1)[0].strip()
print ip
Oder schließen Sie ein anderes der oben genannten Beispiele an einen Befehl wie os.popen, os.popen2, os.popen3 oder os.system an.