@roschi: Was glaubst du was ich die ganze Zeit tue? Mein Link zeigt sogar einen "jungfräulichen" Text (also ohne jegliche HTML-Formatierung) an.
Die Frage kam ja erst auf, als mir gesagt wurde, dass ich die IPs anderer Seiten auch ohne ein externes Programm abfragen kann. Und nun ging es mir darum, auch die eigene IP anzeigen zu können ohne eine andere Website dafür bemühen zu müssen. Das scheint aber etwas komplizierter zu sein und daher belasse ich die Funktion bisher auch bei der urllib-Lösung.
Wiederholungen in Regex
- roschi
- User
- Beiträge: 225
- Registriert: Samstag 29. März 2008, 18:58
- Wohnort: Thueringen, Deutschland
- Kontaktdaten:
upps, das habe ich uebersehen.snafu hat geschrieben:@roschi: Was glaubst du was ich die ganze Zeit tue? Mein Link zeigt sogar einen "jungfräulichen" Text (also ohne jegliche HTML-Formatierung) an.
aber es ist gut, einen server mit jungfraeulicher response zu kennen ^^
mfg
roschi
[edit]
sorry, dass ich dir nicht weiterhelfen konnte
[/edit]
Zuletzt geändert von roschi am Mittwoch 15. Oktober 2008, 12:41, insgesamt 1-mal geändert.
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
Ich habe mich etwas in die Abläufe eingelesen und den Code halbwegs nachvollziehbar in "own_ip()" strukturiert. Kann ich auch Python-intern den ifname herausfinden?
Der Code: http://paste.pocoo.org/show/88077/
Der Code: http://paste.pocoo.org/show/88077/
Kurz bei Google vorbeigeschaut: http://code.activestate.com/recipes/439093/snafu hat geschrieben:Kann ich auch Python-intern den ifname herausfinden?
So, jetzt sollte es hoffentlich plattformübergreifend laufen: http://paste.pocoo.org/show/88136/
EDIT: Wohl doch nicht. Hab's gerade von jemandem testen lassen. Die IP befindet sich wohl nicht immer an [52:56]. Wäre ja auch zu schön gewesen.
EDIT: Wohl doch nicht. Hab's gerade von jemandem testen lassen. Die IP befindet sich wohl nicht immer an [52:56]. Wäre ja auch zu schön gewesen.
Jetzt sollte es gehen. Vielleicht mag das ja mal jemand testen...
http://paste.pocoo.org/show/88167/
http://paste.pocoo.org/show/88167/
Wenn es nicht nur eine Uebung in Regexp sein soll, warum nicht explizit, z.B. so?snafu hat geschrieben:Innerhalb eines Skripts zur Anzeige der IP habe ich folgenden Ausdruck:
Code: Alles auswählen
#!/usr/bin/env python
# checkip.py -- check IPv4 dotted quad address
def check_ip(ip_str):
"Check an IPv4 address in dotted quad notation"
try:
quad = map(int, ip_str.split('.'))
if len(quad) != 4: return False
for q in quad:
if q < 0 or q > 255:
return False
return True
except:
return False
if __name__ == '__main__':
import sys
print check_ip(sys.argv[1])
Es ging ja ursprünglich nicht um's Testen sondern um's Finden einer IP in einer Zeichenkette.
Meine Variation der Testfunktion (ungetestet):
Meine Variation der Testfunktion (ungetestet):
Code: Alles auswählen
def is_ip(string):
parts = string.split('.', 3)
if len(parts) < 4:
return False
try:
return all(0 <= int(p) <= 255 for p in parts)
except ValueError:
return False
- roschi
- User
- Beiträge: 225
- Registriert: Samstag 29. März 2008, 18:58
- Wohnort: Thueringen, Deutschland
- Kontaktdaten:
hallo!!
mfg
roschi
wie soll das plattformunabhaengig gehen? es gibt unter windows kein fcntl, leider.snafu hat geschrieben:etzt sollte es gehen. Vielleicht mag das ja mal jemand testen...
http://paste.pocoo.org/show/88167/
mfg
roschi
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
-
- User
- Beiträge: 155
- Registriert: Freitag 29. Dezember 2006, 18:27
Das gibt nur meine interne IP zurück (192.168. ...). Ich glaub, um die IP des Routers herauszufinden, musst du wirklich auf sowas wie checkip.dyndns.org zurückgreifen.
Gruß Fred
Gruß Fred
Okay, mit nem Router hab ich's nicht getestet, ohne Router stimmt sie. Kannst ja mal probieren deine interne IP ebenfalls auszuschliessen (Zeile 27). Ich weiß aber ehrlich gesagt nicht ob die Funktion bis nach "draußen", sprich: an die IP des Routers, kommt.
EDIT: Hab's jemanden mit Router testen lassen. Geht leider nicht. Hätte mich auch gewundert.
EDIT: Hab's jemanden mit Router testen lassen. Geht leider nicht. Hätte mich auch gewundert.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Natürlich nicht. Das ist ja der ganze Punkt von NAT und auch der warum wir in Zukunft definitiv IPv6 brauchen. Stell dir mal vor, NATs hinter NATs zu traversieren, allein die Idee ist so fürchterlich, dass man das gar nicht glauben will.snafu hat geschrieben:EDIT: Hab's jemanden mit Router testen lassen. Geht leider nicht. Hätte mich auch gewundert.
Siehe The future without IPv6. Daraufhin habe ich mich gleich umgesehen, ob mein ISP IPv6-Zugänge bereitstellt (tut er nicht).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Naja, das tut er nicht, weil er bereits einen ausreichenden Block von IPv4 Adressen hat, und damit offenbar noch gut auskommt... und zur Not noch einen weiteren Block bekommen kann.
In Asien ist die Situation deutlich angespannter und APNIC hat auch wenn man die Bevoelkerungsdichte beruecksichtigt deutlich weniger IPv4 Adressraum zu vergeben als RIPE oder ARIN.
Darum kriegt man z.B. in Japan oder Korea jetzt schon standardmaessig IPv6 Adressen zugeteilt; und muss fuer frische IPv4 Adressen mittlerweile bei den meisten ISPs einen Zuschlag zwischen USD 10 und USD 25 pro Monat bezahlen (sogar fuer dynamische IPv4 Adressen), waehrend die IPv6 Adressen zuschlagsfrei sind.
In Asien ist die Situation deutlich angespannter und APNIC hat auch wenn man die Bevoelkerungsdichte beruecksichtigt deutlich weniger IPv4 Adressraum zu vergeben als RIPE oder ARIN.
Darum kriegt man z.B. in Japan oder Korea jetzt schon standardmaessig IPv6 Adressen zugeteilt; und muss fuer frische IPv4 Adressen mittlerweile bei den meisten ISPs einen Zuschlag zwischen USD 10 und USD 25 pro Monat bezahlen (sogar fuer dynamische IPv4 Adressen), waehrend die IPv6 Adressen zuschlagsfrei sind.
Wobei China da wohl schlimmer dran ist als Korea oder Japan, da die Zahl der Internetanschlüsse dort wesentlich schneller wächst.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Wie verläuft das eigentlich bei der großen Anzahl von IPv6-Clients, dass die dann auch auf IPv4-only-Services zugreifen können? Über so lustige Tunnels wie 6bone odr ähnliches? Schließlich ist ein großer Teil des Internets in Europa und Nordamerika nicht IPv6-erreichbar.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Internet"technik" ist definitiv etwas wo ich ne Menge Nachholbedarf aber auch großes Interesse habe. In meinem Studium ist neben den beiden Fächern auch der sogenannte Optionalbereich verpflichtend, in dem man u.a. informationstechnische Veranstaltungen besuchen kann. In diesem Semester habe ich "HTML im Studium" gewählt und ich bin mal sehr gespannt was in den nächsten Semestern so angeboten wird. (Sorry, war jetzt etwas offtopic).
Könnt ihr denn gute Bücher empfehlen, die einen Überblick zu den Abläufen im Internet geben (z.B. wie Client und Server miteinander kommunizieren, was im Hintergrund abläuft, wenn ich über das Modul "socket" die IP einer Seite abfrage usw.)?
Könnt ihr denn gute Bücher empfehlen, die einen Überblick zu den Abläufen im Internet geben (z.B. wie Client und Server miteinander kommunizieren, was im Hintergrund abläuft, wenn ich über das Modul "socket" die IP einer Seite abfrage usw.)?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
In diesem Bereich ist wohl TCP/IP von W. Richard Stevens (gibt es auch in deutsch), der absolute Klassiker.snafu hat geschrieben:Könnt ihr denn gute Bücher empfehlen, die einen Überblick zu den Abläufen im Internet geben (z.B. wie Client und Server miteinander kommunizieren, was im Hintergrund abläuft, wenn ich über das Modul "socket" die IP einer Seite abfrage usw.)?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice