Cum să vă cunoașteți IP-ul public cu o singură comandă

Din blogul lui erjaimer este că primesc acest sfat foarte util.

Se întâmplă asta erjaimer El ne explică cum, într-o singură linie, putem cunoaște IP-ul nostru public (IP real), dar invită, de asemenea, pe oricine dorește să îmbunătățească linia să facă acest lucru ... și bine ... ei știu că sunt un mare fan al bash-ului, așa că am făcut ciudatul Schimbare. Aceasta este Linia mea:

GET http://www.vermiip.es/  | grep "Tu IP p&uacute;blica es" | cut -d ':' -f2 | cut -d '<' -f1

Să vedem o captură de ecran a rezultatului obținut cu modificările mele:

Linia sa este următoarea:

GET http://www.vermiip.es/ | grep "Tu IP pública es" | perl -pe 's/(.*:)||\s+//g;'

Și cum ar arăta folosind linia originală:

Explicația comenzii inițiale este furnizată de aceeași erjaimer en articolul:

  1. Comanda GET Se află în orice distribuție GNU / Linux și, așa cum indică numele său, descarcă un HTML, având o adresă URL.
  2. Următorul pas este să ne uităm la documentul HTML pentru a vedea ce IP ne arată pagina. În acest al doilea pas obținem acest rezultat: IP-ul dvs. public este: xx.xx.xxx.xxx, unde, evident, X-urile sunt numere.
  3. Următorul pas voi folosi expresii regulate și PERL ca comandă de consolă, filtrarea literelor etc. perl -pe 's /(.* :) | (<\ / h2>) | (\ s +) // g; Această regex este făcută puțin ușor, vă propun să o îmbunătățiți sau chiar folosind grep puțin mai bine poate fi eliminată.

Și aici vă las explicația mea:

  1. prin GET Descărcăm codul HTML al adresei URL, care ne arată adresa noastră IP și, de asemenea, mult mai mult text pe care nu îl dorim.
  2. Vom curăța tot codul nedorit, lăsând doar linia IP grep.
  3. Problema este că ne arată IP-ul cu un text mic și etichete H2, deci acum folosim de două ori tăiat vom curăța totul și vom lăsa doar IP-ul.
  4. (Prima tăietură) »Curățăm textul și prima etichetă H1 spunând pur și simplu că nu arată nimic din ceea ce este : (două puncte) la stânga, lăsând doar o etichetă H2 la final.
  5. (Prima tăiere) »Curățăm această ultimă etichetă H1 cu cealaltă tăietură, care nu va arăta nimic din prima <în dreapta sa. Rămânând doar IP.

Orice metodă (comandă) pe care o utilizați vă va oferi același rezultat, am vrut pur și simplu să-mi aduc contribuția, deoarece atunci când văd linia de comandă cu expresii regulate și perl, ar fi dificil să explicăm caracter cu caracter altora haha.

Oricum, sper să vă placă și o mie de mulțumiri erjaimer pentru că am scris articolul original.

În ceea ce priveşte


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Rodolfo el a spus

    Dacă nu aveți curl și dacă aveți wget (de exemplu, cazul meu în MacOSX), această comandă funcționează și:

    wget -nv -q -O - http://ip.appspot.com/

    (deși așa cum spune Edwin, ifconfig.me este ceea ce trebuie făcut ... și am instalat curl pe MacOSX)

  2.   Edwin el a spus

    Mai ușor
    curl ifconfig.me

    1.    KZKG ^ Gaara el a spus

      O_O ... Nu știam acel site ... WTF!
      Mulțumesc pentru prietenul de date, super interesant hehe.

      PS: Acum mă simt ca un idiot pentru că am folosit un întreg lanț de instrucțiuni atunci când ai reușit să o faci cu 2 cuvinte HAHAHA

    2.    Ariel el a spus

      EXCELENT, doar instalând curl și acea comandă, funcționează excelent!

  3.   Santiago el a spus

    Foarte bună contribuție! Este, de asemenea, foarte util, deoarece nu necesită nimic suplimentar instalat. Am încercat cu CURL, dar îmi cere să instalez pachetul.

    Salutări.

    1.    KZKG ^ Gaara el a spus

      Ah, CURL nu vine la fel în sistemul implicit? O_O
      Ei bine, mulțumesc pentru contribuția bună, faci ce poți 🙂

      Salutări și mulțumiri prietene

  4.   lesterzone el a spus

    WTF !! mare explicație pentru (copy-paste, xD N-am scris niciodată porecla asta) KZKG ^ Gaara. Edwin, ei bine, grozav, acea metodă pe care nu o știam. Vă mulțumim pentru distribuire.

    1.    KZKG ^ Gaara el a spus

      hahaha mulțumesc prieten 🙂

  5.   alexander mora el a spus

    Sau cu:
    bucla -s http://ip.appspot.com/

  6.   oberost el a spus

    După cum se spune, nu te vei culca fără să știi încă un lucru

  7.   Sergio el a spus

    Excelent așa, nu știam despre acel serviciu.

    Pentru autorul acestui articol, spune-i că imaginea de fundal din emulatorul terminal face dificilă citirea.

  8.   fratern el a spus

    E minunat. Cu toate acestea, acest lucru este mai ușor:
    $curl ifconfig.me

    1.    KZKG ^ Gaara el a spus

      HAHA, da, au menționat-o deja mai sus, mă simt puțin rău pentru că trebuie să folosesc un lanț întreg de instrucțiuni hehehe

  9.   B1tblu3 el a spus

    vă mulțumesc, foarte util

  10.   Algave el a spus

    Sfat bun ... (bine de știut).

  11.   davervozbox el a spus

    Alte metode:
    Cunoașteți-mi IP-ul public:
    wget -qO- ifconfig.me/ip
    wget -qO- ifconfig.me/host

  12.   Hugo el a spus

    Ei bine, cel puțin pe Debian, puteți utiliza alternativ browserul implicit al consolei:

    www-browser http://ifconfig.me

    De obicei folosesc elinks sau w3m

  13.   adecvat el a spus

    Ce comenzi complicate Gaara !! eu folosesc

    wget -qO- icanhazip.com

  14.   taregon el a spus

    Hahaha, grozav.

  15.   Blazek el a spus

    Foarte bine, nu știam așa. Nu te vei culca niciodată fără să afli ceva nou.

    1.    KZKG ^ Gaara el a spus

      La asta m-am gândit când am văzut toate modalitățile de a face acest haha

  16.   manolox el a spus

    Am unul similar. Rezultatul este același.
    wget -q -O - checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'

    Dacă punem acest lucru într-un script și îl adăugăm pentru a fi afișat pe ecran cu zenity (de exemplu), este o „aplicație” foarte tare

    Lucrul ar fi așa:
    #!/bin/sh

    IPPUBLICA=$(wget -q -O - checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//')

    zenity --info --text="Tu IP es: $IPPUBLICA"

    În ceea ce priveşte

  17.   jorgenator2 el a spus

    Niciun wget nu este instalat în mod implicit în unele distribuții, astfel încât curl este cel mai potrivit în acest sens

    1.    KZKG ^ Gaara el a spus

      curl este instalat implicit în toate?

  18.   grăsimetrol el a spus

    O fac așa, am un alias xD:
    alias myip = 'wget http://automation.whatismyip.com/n09230945.asp -O - ​​2> / dev / null; aruncat'

    Dar cel CURL m-a lăsat fără cuvinte.

    Salutări!

  19.   elwuilmer el a spus

    Consider că există multe metode (modalități) de a obține IP-ul public și că fiecare este liber să-și aleagă propria, cu cea pe care o identifică cel mai mult, îmi place în mod deosebit să folosesc:

    wget -qO- ifconfig.me/ip

    O sugestie din partea mea este să editez postarea și să plasez fiecare dintre alternativele care există pentru a cunoaște IP-ul public și că cititorul este liber să aleagă metoda de utilizat.

  20.   Matthias el a spus

    Accesați „panoul de control” de acolo și selectați „conexiuni de rețea” după deschidere, faceți clic dreapta pe conexiunea care funcționează (acestea vor fi cele cu 2 bucuri albastre) și selectați „proprietăți” în noua fereastră care se va deschide Faceți clic pe „protocoale de internet” și apoi pe opțiunea „proprietăți” acolo și puteți vedea adresa dvs. IP

    Dacă îți place de mine, răspunde-mi, votează-mă! https://es.answers.yahoo.com/question/index?qid=20080731112416AAVDKNz

  21.   Pablo el a spus

    A fost foarte util să găsiți toate informațiile pe care le furnizează pe pagină. Am reușit să urmez pașii și să îmi cunosc IP-ul public. Pe această altă pagină http://www.gurugles.com/internet-y-computadoras/cual-es-mi-ip-publica/ . De asemenea, am găsit multe răspunsuri despre IP, foarte clare, pentru cei dintre noi care nu înțelegem prea multe despre subiect.

  22.   anonim el a spus

    bucla este maximul