Wie kann man herausfinden, ob der Computer in Python mit dem Internet verbunden ist?Wie kann man herausfinden, ob der Computer mit dem Internet verbunden ist?
Antwort
Versuchen
import urllib
file = urllib.urlopen("http://stackoverflow.com/")
html = file.read()
und sehen, ob das funktioniert, oder wenn es eine Ausnahme auslöst. Auch wenn Sie nicht den genauen Code verwenden, sollten Sie die Idee bekommen.
Wenn Sie python2.6 haben, können Sie eine Zeitüberschreitung festlegen. Andernfalls blockiert die Verbindung möglicherweise für eine lange Zeit.
try:
urllib2.urlopen("http://example.com", timeout=2)
except urllib2.URLError:
# There is no connection
+1 für die Zeitüberschreitung. Wie Gamecat sagte, könnte es auch bedeuten, dass example.com nicht erreichbar ist :-) –
@Vinay, das stimmt. Vielleicht sollte er google.com ausprobieren. Wenn Google unten war. Dann schätze ich, dass es kein Internet gibt;) –
Sie können ein Timeout in 2.5 auch setzen, indem Sie import socket verwenden; socket.setdefaulttimeout (
Lol, es gibt nur ein falsches Negativ wenn SO runter ist ;-). Überprüfen Sie besser ein paar Sites und nehmen Sie Verbindung an, wenn mindestens eins oben ist. –
Es war nur eine Illustration - benutze jede Seite, die du willst! –
kann es auch fehlschlagen, wenn ein Proxy-Server ausgeführt wird. –