Shell - jak znaleźć adres IP?

Listopad 2016


Cel


Istnieje wiele powodów, dla których możemy potrzebować odnaleźć nasz publiczny adres IP w skrypcie. Jednak cała sztuka polega na tym, jak znaleźć ten adres bez ludzkiej interwencji, jeśli jesteśmy podłączeni do sieci lokalnej LAN.

A w praktyce


Najprostszym sposobem, jaki na ten moment znalazłam jest użycie mało skomplikowanej komendy, która wyszukuje IP na wybranej przez nas stronie internetowej:
GET www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p'
lub
lynx --źródło www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p'
albo jeszcze
w3m -dump http://www.monip.org/ | awk -F': ' '/IP/ { print $2 }'
Dziękujemy użytkownikowi dubcek za propozycję rozwiązania z "w3m"

Wyjaśnienie

GET


Komenda GET (lwp-request) znajduje się w libwww języka Perl (package perl-libwww-perl-version).
Zgodnie z nazwą tej komendy, powoduje ona działanie GET na stronie, co pokazuje kod źródłowy strony.

Lynx


Lynx jest przeglądarką w trybie tekstowym obecną w większości dystrybucji Linuksa, która jednocześnie, gdyby zaszła taka potrzeba, jest prostsza do zainstalowania niż lwp-request Perl.

Sed


Komenda sed:
  • parametry
    • -n: ogranicza wyświetlanie do podanych linii (związane z parametrem "p")
    • -r: obsługa rozszerzonych wyrażeń regularnych
    • -e: wyrażenie
    • s///: wyznacza substytucję
    • p: rezultat jest wyświetlony (w korelacji do parametru "n")
    • motyw
    • ^.*(motif_ip).*$: wyszukiwanie linii zawierającej adres IP (porównaj z artykułem który pojawi się wkrótce: RegExp -jak znaleźć adres IP )
    • \1: elementy znajdujące się w nawiasach mogą być adresowanie w następstwie wyrażenia przez \1.


Linia zawierająca adres IP jest zatem zastępowana przez sam adres IP ;-)

To do Ciebie należy decyzja, co następnie zrobisz z otrzymanym rezultatem!

Zobacz również :
Ten dokument zatytułowany «  Shell - jak znaleźć adres IP?  » opublikowany przez CCM (pl.ccm.net) jest udostępniany na licencji Creative Commons. Możesz kopiowaći modyfikować kopie tej strony, na warunkach określonych przez licencjęi wymienionych w niniejszym tekście.