Tux RSS-IconHallo, und willkommen auf meinem Blog!
Falls du hier neu bist und dir gefällt was ich schreibe, dann abonniere am besten meinen RSS-Feed um auf dem Laufenden zu bleiben.
Was das ist kannst du hier erfahren.

Link 09.11.10, 21:48:43

Öffentliche IP-Adresse per Fritz!Box auslesen

Ich bin eben im ubuntuusers-Wiki auf seinen schönen Trick gestoßen um eine Verbindung nach „draußen“ zu vermeiden, wenn man die öffentliche IP-Adresse wissen möchte. Bisher hab ich das immer mit Hilfe einer Webseite wie z.B. wieistmeineip.de erreicht, auch um die IP dann per Conky auf meinem Desktop anzeigen zu lassen.
Das ging mithilfe eines Shell-Skriptes so: #!/bin/bash # eigene öffentliche ip anzeigen wget http://checkip.dyndns.org/ -q -O - | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>' und dann wurde das Skript noch durch Conky ausgeführt, in der .conkyrc stand also folgendes: ${execi 7200 ~/DATEINAME.sh} Aber irgendwie ist es doch ein bisschen blöd für so etwas triviales extra eine Internetseite kontaktieren zu müssen. Zudem ist man davon abhängig, dass die Seite ständig online ist. Wenn man eine Fritz!Box als Router verwendet geht es wesentlich einfacher, durch das Abrufen der Einstellungsseite der Fritz!Box (im Browser erreichbar unter fritz.box) und dem Herausfiltern der IP-Adresse, die dort sowieso angezeigt wird:wget ''http://fritz.box/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=home&var:pagename=home'' -q -O - | grep -Eo ''\\<[[:digit:]]{1,3}(\\.[[:digit:]]{1,3}){3}\\>'' | grep -Ev "^0+\\." Dieser Einzeiler hat aber nur den gewünschten Effekt, wenn die Weboberfläche nicht passwortgeschützt ist, und das sollte sie aus Sicherheitsgründen unbedingt sein. Also muss eine andere Lösung her, und die arbeitet mit UPnP: curl "http://fritz.box:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress" -d "<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:GetExternalIPAddress xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" /> </s:Body> </s:Envelope>" -s | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>' Das funktioniert auch mit Passwortschutz. Ab damit in eine Datei und wie gewohnt durch Conky ausführen lassen.
Da wir gerade bei Bash-Einzeilern im Zusammenhang mit der Fritz!Box sind, hier noch ein anderer netter Befehl. Um die IP-Adresse zu ändern genügt folgende Anweisung:curl "http://fritz.box:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination" -d " "

tags:#fritzbox #ip #conky


Share

Kommentare:

Link 18.05.11, 20:56:18
clockwork

heyho, wär saugeil der curl einzeiler. tut leider nur nicht bei mir... upnp iss an, curl iss installiert, fritzbox unter fritz.box erreichbar. des soap geblubb versteh ich leider net, hättest du ne idee?

Link 19.05.11, 13:01:05
ucn| (Webseite)

Hi clockwork,
der Code zum Auslesen der IP-Adresse mit curl wurde falsch dargestellt, hab das Problem mit der Darstellung hoffentlich behoben. Mit dem Code der jetzt dasteht funktioniert es bei mir, probiers bitte mal aus und sag mir Bescheid ob es bei dir auch geklappt hat.
Sorry nochmal :(

Link 21.05.11, 00:21:04
clockwork

saugut, funzt wunderbar! jetzt kann ich mir den umweg über meinen server im rz sparen, damit ich meine public-ip rausbekomm :)

brauch das eigentlich nur, um vom in letzter zeit sehr fehlerträchtigen dyndns.com unabhängig zu sein und nicht wie neulich als ich dringend was von daheim gebraucht hab im regen zu stehen ;)

thx nochmal



Kommentare erscheinen erst nach der Freigabe unter einem Blogpost.
HTML ist nicht erlaubt.




(optional, nur falls du bei neuen Kommentaren benachrichtigt werden willst)