Artikel verknüpft mit 'ip':
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