Как получить IP-адрес сервера на Centos 7 в bash
Ранее я использовал следующую команду в bash, чтобы найти основной ip моего сервера.
ipaddr=$(/sbin/ifconfig|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}' | grep -v '127.0.0.1')
Но в centos7 он больше не работает, так как ifconfig недоступен, и команда больше не работает, даже если я устанавливаю ifconfig
с помощью yum install net-tools
Какова эквивалентная команда для Centos 7
большое спасибо
Ответы
Ответ 1
Вы можете использовать команду hostname:
ipaddr=$(hostname -I)
-i, --ip-address
: Показать IP-адрес (а) хоста. Обратите внимание, что это работает, только если имя хоста может быть разрешено.
-i, --all-ip-addresses
все сетевые адреса хоста. Эта опция перечисляет все настроенные адреса на всех сетевых интерфейсах. Интерфейс обратной связи и локальные адреса IPv6 опущены. В отличие от опции -i, эта опция не зависит от разрешения имени. Не делайте никаких предположений о порядке вывода.
Ответ 2
Введите команду ip addr
в консоли
![enter image description here]()
Ответ 3
Я использую Centos 7 и команду
ip a
достаточно, чтобы сделать работу.
![enter image description here]()
Ответ 4
Что-то вроде этого - рифф на @maarten-vanlinthout answer
ip -f inet a show eth0| grep inet| awk '{ print $2}' | cut -d/ -f1
Ответ 5
SERVER_IP="$(ip addr show ens160 | grep 'inet ' | cut -f2 | awk '{ print $2}')"
замените ens160 на ваше имя интерфейса
Ответ 6
Вы можете запустить простые команды, такие как
curl ifconfig.co
curl ifconfig.me
wget -qO - icanhazip.com
Ответ 7
На самом деле, когда вы не хотите использовать внешние источники (или не можете), я бы порекомендовал:
DEVICE=$(ls -l /sys/class/net | awk '$NF~/pci0/ { print $(NF-2); exit }')
IPADDR=$(ip -br address show dev $DEVICE | awk '{print substr($3,1,index($3,"/")-1);}')
Первая строка получает имя первого сетевого устройства на шине PCI, вторая - IP-адрес.
Кстати, ps... | grep... | awk...
ps... | grep... | awk...
ps... | grep... | awk...
воняет awk не нуждается в grep.
Ответ 8
Немного поздно, однако я использую
curl -4 icanhazip.com
возвращает основной IP-адрес сервера.
Ответ 9
Я считаю, что самым надежным способом получить внешний IP-адрес сервера будет использование внешней службы.
ipaddr=$(curl -s http://whatismyip.akamai.com/)
Ответ 10
Запустите эту команду, чтобы показать ip4 и ip6:
ifconfig eth0 | grep inet | awk '{print $2}' | cut -d/ -f1