Когда я набираю ifconfig, я вижу, что у моего сервера каждый день новый IP-адрес. IP-адреса принадлежат набору IP-адресов.
Как мне узнать все IP-адреса моего сервера?
Или
# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:0c:29:cc:ae:67 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.123/24 brd 192.168.0.255 scope global eth0
inet6 fe80::20c:29ff:fecc:ae67/64 scope link
valid_lft forever preferred_lft forever
Я предполагаю, что вы имеете в виду, что IP-адрес вашего сервера назначается динамически каждый день, и вы хотите знать пул возможных адресов, которые может иметь ваш сервер. В этом случае вы можете связаться с тем, кто управляет DHCP-сервером, который назначает адреса в вашей сети (или с вашим интернет-провайдером, если сервер напрямую подключен к Интернету). Если вы хотите узнать все прошлые IP-адреса вашего сервера, вы можете поместить ответ Леннарта в cronjob.
ifconfig | grep inet | awk '{print $2}' >> .iplog
Или что-то в этом роде.
Спросите людей, которые администрируют DHCP-сервер, который назначает адреса вашему серверу, это единственный способ узнать наверняка.
Вы можете относительно безопасно предположить, что ваш ip-адрес всегда будет в пределах бинарной и сетевой маски ip-адреса, однако нет никакой гарантии такого поведения, и есть вероятность, что пул адресов dhcp-серверов будет подмножеством ipaddress & netmask.
Теперь, экстраполируя, если вы хотите узнать все возможные IP-адреса для своего сервера, потому что вы хотите иметь возможность найти его даже после того, как он изменил свой IP-адрес, я бы предложил проверить одного из динамических провайдеров DNS. в интернете.
Очень простой способ распечатать все ваши адреса IPv4 и IPv6:
ifconfig | grep inet | awk '{print $2}'
или:
#!/usr/bin/env bash
OS=`uname`
case $OS in
Linux) IP=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`;;
Darwin|FreeBSD|OpenBSD) IP=`ifconfig | grep -E 'inet.[0-9]' | grep -v '127.0.0.1' | awk '{ print $2}'` ;;
SunOS) IP=`ifconfig -a | grep inet | grep -v '127.0.0.1' | awk '{ print $2} '` ;;
*) IP="Unknown";;
esac
echo "$IP"
нашел здесь.
Это напечатает все IP, кроме 127.0.0.1 для localhost.
ifconfig | awk -F "[: ]+" '/inet addr:/ { if ($4 != "127.0.0.1") print $4 }'