Jos tarkistan google, näen julkisen IP-osoitteeni. Onko Ubuntun komentorivillä jotain, joka antaa minulle saman vastauksen?
Jos et ole reitittimen takana, voit selvittää sen käyttämällä ifconfig
.
Jos olet reitittimen takana, tietokoneesi ei tiedä julkista IP-osoitetta, koska reititin tekee verkko-osoitteen muunnoksen. Voit kysyä joltain verkkosivustolta julkisen IP-osoitteesi curl
- tai wget
-ohjelmalla ja poimia siitä tarvitsemasi tiedot:
curl -s https://checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
tai lyhyemmin
curl https://ipinfo.io/ip
Ulkoisen ip:n löytämiseksi voit käyttää joko ulkoisia verkkopalveluja tai järjestelmään perustuvia menetelmiä. Ulkoisen palvelun käyttäminen on helpompaa, ja myös ifconfig
-pohjaiset ratkaisut toimivat järjestelmässäsi vain, jos et ole NAT
:n takana. näitä kahta menetelmää on käsitelty yksityiskohtaisesti jäljempänä.
Helpoin tapa on käyttää ulkoista palvelua komentoriviselaimen tai lataustyökalun kautta. Koska wget
on Ubuntussa oletusarvoisesti käytettävissä, voimme käyttää sitä.
Voit löytää ip:n käyttämällä-
$ wget -qO- https://ipecho.net/plain ; echo
Kunnianosoitus:
Voit myös käyttää lynx
(selain) tai curl
:ia wget
:n sijasta pienin muutoksin yllä olevaan komentoon verrattuna ulkoisen ip:n löytämiseksi.
Käyttämällä curl
ip:n etsimiseen:
$ curl https://ipecho.net/plain
Paremmin muotoiltua tulostetta varten käytä:
$ curl https://ipecho.net/plain ; echo
dig
:tä ja OpenDNS
:ää resolverina:Muut vastaukset tässä menevät kaikki HTTP:n kautta etäpalvelimelle. Jotkut ne vaativat tulosteen jäsentämistä tai luottavat User-Agent-otsakkeeseen. saadakseen palvelimen vastaamaan selkokielisenä tekstinä. Ne myös muuttuvat melko usein (lakkautetaan, muutetaan nimeä, laitetaan mainoksia, saatetaan muuttaa tulostusmuoto jne.).
- DNS-vastausprotokolla on standardoitu (muoto pysyy yhteensopivana).
- Historiallisesti DNS-palvelut (OpenDNS, Google Public DNS, ..) kestävät yleensä paljon pidempään ja ovat vakaampia, skaalautuvampia ja yleisesti katsottuna kuin mitä tahansa uutta trendikästä whatismyip.com HTTP-palvelua, joka on tänään muodissa.
- (Niille nörteille, jotka välittävät mikro-optimoinnista), tämän menetelmän pitäisi olla luonnostaan nopeampi (vaikka vain muutaman mikrosekunnin verran).
Digin käyttäminen OpenDNS:n kanssa resolverina:
$ dig +short myip.opendns.com @resolver1.opendns.com
111.222.333.444
Kopioitu osoitteesta: https://unix.stackexchange.com/a/81699/14497
Kirjoita terminaaliin seuraava teksti:
$ LANG=c ifconfig <interface_name> | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
Korvaa yllä olevassa kohdassa <interface_name>
todellisen rajapintasi nimellä, esim. eth0
, eth1
, pp0
, jne....
Esimerkki käytöstä:
$ LANG=c ifconfig ppp0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
111.222.333.444
Kirjoita terminaaliin seuraava (tämä saa järjestelmän jokaisen verkkoliitännän nimen ja ip-osoitteen):
$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'
Esimerkki käytöstä:
$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'
lo: 127.0.0.1
ppp0: 111.222.333.444
N.B: Tulokset ovat suuntaa-antavia eivätkä todellisia.
Lähde: https://www.if-not-true-then-false.com/2010/linux-get-ip-address/
UPDATE
LANG=c
on lisätty ifconfig
-pohjaisiin käyttökohteisiin, jotta se antaa aina englanninkielisen tulosteen riippumatta locale-asetuksista.