Hvis jeg sjekker med google, kan jeg se min offentlige IP. Er det noe på Ubuntu-kommandolinjen som vil gi meg det samme svaret?
Hvis du ikke står bak en ruter, kan du finne det ut ved hjelp av ifconfig
.
Hvis du befinner deg bak en ruter, vil ikke datamaskinen din vite om den offentlige IP-adressen ettersom ruteren gjør en nettverksadresseoversettelse. Du kan spørre et nettsted hva din offentlige IP-adresse er ved hjelp av curl
eller wget
og hente ut informasjonen du trenger fra den:
curl -s https://checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
eller kortere
curl https://ipinfo.io/ip
For å finne den eksterne IP-adressen kan du enten bruke eksterne nettbaserte tjenester eller bruke systembaserte metoder. Den enkleste er å bruke den eksterne tjenesten, også ifconfig
-baserte løsninger vil bare fungere i systemet ditt hvis du ikke står bak en NAT
. de to metodene er diskutert nedenfor i detalj.
Den enkleste måten er å bruke en ekstern tjeneste via en kommandolinjenettleser eller et nedlastingsverktøy. Siden wget
er tilgjengelig som standard i Ubuntu, kan vi bruke det.
For å finne ip-en din, bruk-
$ wget -qO- https://ipecho.net/plain ; echo
Høflighet:
Du kan også bruke lynx
(nettleser) eller curl
i stedet for wget
med mindre variasjoner av kommandoen ovenfor, for å finne din eksterne ip.
Bruk curl
for å finne ip-adressen:
$ curl https://ipecho.net/plain
For en bedre formatert utgang bruk:
$ curl https://ipecho.net/plain ; echo
dig
med OpenDNS
som resolver:De andre svarene her går alle over HTTP til en ekstern server. Noen av dem krever parsing av utdata, eller er avhengige av User-Agent-headeren for å få serveren til å svare i ren tekst. De endres også ganske ofte (gå ned, endre navn, sette opp annonser, kan endre utdataformat osv. utdataformat etc.).
- DNS-svarprotokollen er standardisert (formatet vil forbli kompatibelt).
- Historisk sett har DNS-tjenester (OpenDNS, Google Public DNS, ..) en tendens til å overleve mye lenger og er mer stabile, skalerbare og generelt sett mer populære. etter enn hvilken som helst ny hip whatismyip.com HTTP-tjeneste som er hot i dag.
- (for de nerdene som bryr seg om mikrooptimalisering), bør denne metoden være iboende raskere (det være seg bare noen få mikrosekunder).
Bruk av dig med OpenDNS som resolver:
$ dig +short myip.opendns.com @resolver1.opendns.com
111.222.333.444
Kopiert fra: https://unix.stackexchange.com/a/81699/14497
Skriv inn følgende i terminalen din:
$ LANG=c ifconfig <interface_name> | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
I det ovenstående erstatter du <interface_name>
med navnet på ditt faktiske grensesnitt, f.eks: eth0
, eth1
, pp0
, osv....
Eksempel på bruk:
$ LANG=c ifconfig ppp0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
111.222.333.444
Skriv inn følgende i terminalen din (dette får navnet og ip-adressen til hvert nettverksgrensesnitt i systemet ditt):
$ 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 }'
Eksempel på bruk:
$ 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
NB: Resultatene er veiledende og ikke reelle.
Høflighet: https://www.if-not-true-then-false.com/2010/linux-get-ip-address/
OPPDATERING
LANG=c
har blitt lagt til i ifconfig
-baserte bruksområder, slik at den alltid gir engelsk utdata, uavhengig av språkinnstilling.