Meine IP-Adresse mit Python herausfinden
Wie man seine IP-Adresse im Internet in der Shell und/oder mit Perl herausbekommt, habe ich ja bereits gezeigt. Was aber, wenn man diese Adresse auch in der Python-Shell braucht? Dafür habe ich die Funktion myIP
geschrieben:
import httplib def myIP(): verb = httplib.HTTPConnection('www.whatismyip.com') verb.request('GET', '/automation/n09230945.asp') antw = verb.getresponse() html = antw.read() return html |
Zunächst wird das Modul httplib
importiert. Dann wird mit HTTPConnection
zu der Seite von whatismyip.com eine Verbindung hergestellt, der Quelltext der Unterseite /automation/n09230945.asp ausgelesen und in der Variablen html
gespeichert. Der Quelltext besteht bereits einzig und allein aus der einzelnen IP-Adresse, so dass man hier nicht mit regulären Ausdrücken arbeiten muss, um sie auszuschneiden. Zum Schluss wird der Inhalt der Variablen html
auf dem Python-Prompt ausgegeben. Wenn man die Funktion interaktiv in der Python IDLE testet, sieht das etwa so aus:
>>> myIP() '209.85.238.20' |
Wahrscheinlich gibt es das schon, vielleicht geht das auch noch einfacher, und ich hätte nur danach suchen müssen, aber selber programmieren macht einfach am meisten Spaß und man lernt immer etwas dabei.
Um Python zu lernen, ist übrigens das Buch Python von Peter Walerowskis ein wirklich guter Einstieg. Auf verständliche Erklärungen folgen Codebeispiele und man bekommt nach und nach ein tieferes Verständnis für die Sprache. Einziger Nachteil ist, dass es sich um die erste Auflage handelt und sich der ein oder andere Fehler eingeschlichen hat. Im Text kann man darüber ja noch hinwegsehen, in den Beispielen sind sie aber ärgerlich. In Listing 4.1 auf Seite 105 muss es z.B. class Train(object):
heißen und nicht class Train(objekt):
. Wenn man das Beispiel so abtippt, wie es da steht, bekommt man eine Fehlermeldung und ist als Anfänger eventuell damit überfordert, sie zu beheben. Aber auf der anderen Seite, wenn man den Fehler findet, kann es auch ein schönes Gefühl sein, als Schüler den Meister zu korrigieren.
Geschrieben in Programmieren, Python