Ако проверя с Google, мога да видя публичния си IP адрес. Има ли нещо в командния ред на Ubuntu, което ще ми даде същия отговор?
Ако не се намирате зад маршрутизатор, можете да го откриете с помощта на ifconfig
.
Ако сте зад маршрутизатор, компютърът ви няма да знае публичния IP адрес, тъй като маршрутизаторът извършва транслация на мрежовия адрес. Можете да попитате някой уебсайт какъв е публичният ви IP адрес с помощта на curl
или wget
и да извлечете необходимата ви информация от него:
curl -s https://checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
или по-кратко
curl https://ipinfo.io/ip
За намиране на външния IP адрес можете да използвате външни уеб услуги или системни методи. По-лесно е да използвате външна услуга, а решенията, базирани на ifconfig
, ще работят във вашата система само ако не сте зад NAT
. двата метода са разгледани подробно по-долу.
Най-лесният начин е да се използва външна услуга чрез браузър от командния ред или инструмент за изтегляне. Тъй като wget
е наличен по подразбиране в Ubuntu, можем да използваме него.
За да намерите вашето IP, използвайте-
$ wget -qO- https://ipecho.net/plain ; echo
Подкрепа:
Можете също така да използвате lynx
(браузър) или curl
вместо wget
с малки промени в горната команда, за да намерите външния си IP адрес.
Използване на curl
за намиране на ip:
$ curl https://ipecho.net/plain
За по-добре форматиран изход използвайте:
$ curl https://ipecho.net/plain ; echo
dig
с OpenDNS
като резолвер:Всички останали отговори тук преминават през HTTP към отдалечен сървър. Някои от тях от тях изискват анализ на изхода или разчитат на заглавието User-Agent за да накарат сървъра да отговори в обикновен текст. Те също така се променят доста често (намаляват, променят името си, поставят реклами, могат да се променят формат на изхода и т.н.).
- Протоколът за отговор на DNS е стандартизиран (форматът ще остане съвместим).
- В исторически план DNS услугите (OpenDNS, Google Public DNS, ...) са склонни да оцеляват много по-дълго и са по-стабилни, мащабируеми и като цяло изглеждат отколкото която и да е нова модерна HTTP услуга whatismyip.com, която е актуална днес.
- (за тези маниаци, които се интересуват от микрооптимизация), този метод трябва да е по-бърз по своята същност (дори и само с няколко микросекунди).
Използване на dig с OpenDNS като резолвер:
$ dig +short myip.opendns.com @resolver1.opendns.com
111.222.333.444
Копирано от: https://unix.stackexchange.com/a/81699/14497
Въведете следното в терминала си:
$ LANG=c ifconfig <interface_name> | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
В горния текст заменете <interface_name>
с името на действителния ви интерфейс, например: eth0
, eth1
, pp0
и т.н..
Примерно използване:
$ LANG=c ifconfig ppp0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
111.222.333.444
Въведете следното в терминала си (така ще получите името и ip адреса на всеки мрежов интерфейс в системата ви):
$ 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 }'
Примерно използване:
$ 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: Резултатите са ориентировъчни и не са реални.
Подкрепа: https://www.if-not-true-then-false.com/2010/linux-get-ip-address/
ДОБАВКА
LANG=c
е добавен към базираните на ifconfig
употреби, така че винаги да дава български изход, независимо от настройката на локала.Този, който използвам, е :
wget -O - -q icanhazip.com
Да, можеш да имаш ip :-)