Zweck
Aus mehreren Gründen, man braucht wieder seine öffentliche
IP Adressen in einem Skript abzurufen. Das Problem besteht dann, wenn man auf
LAN, ist diese IP ohne menschliche Intervention zu finden.
Umsetzung
Der einfachste Weg, den ich bisher gefunden habe, ist ein einfacher Befehl, der nach ip in einer ausgewählt Web-Seite Suchen kann:
GET www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p'
oder
lynx --source www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p'
Erklärungen
GET
Der Befehl
GET (
lwp-request) findet sich in libwww von
Perl (
package perl-libwww-perl-version).
Wie seiner Name schon sagte er macht ein GET auf eine Seite.Und das gibt den Quellcode der Seite.
Lynx
Lynx ist ein Text-Modus-Browser vorliegend in den meisten
Linux-Distributionen, einfacher als lwp-request (
Perl) bei Bedarf zu installieren.
Sed
Der Befehl
sed:
- Die Parameter
- -n: nur Anzeige der geltend gemachten Zeilen ( verbunden mit dem Parameter "p")
- -r: Unterstützung für reguläre weitgehende Ausdrücke
- -e: Ausdruck
- s/ / /: zeigt eine Substitution
- p: das Ergebnis ist angezeigt worden (in Verbindung mit dem Parameter "n")
- Grund
- ^.*(motif_ip).*$ :: Suche nach einer IP-Adresse-haltigen Zeile (siehe : Abrufen einer IP-Adresse )
- \1: Was steht in Klammern, kann im weiteren Verlauf dem Ausdruck \1 gelten.
Die IP-Adresse-haltige Zeile wird durch die IP-Adresse selbst ersetzt ;)
nun, es liegt an Ihnen, was Sie mit dem Ergebnis vorzuhaben!
_________________
Hinweis: Der ursprüngliche Artikel wurde vom Beiträger der Webseite
CommentCaMarche.net asevere veröffentlicht