Мне нужно настроить несколько систем Ubuntu, которые в конечном итоге будут подключены к маршрутизаторам с разными IP-адресами. Например, 192.168.1.x или 192.168.0.x и т.д. Есть ли способ назначения статического IP-адреса на основе адреса любого маршрутизатора? Допустим, я хочу, чтобы последние цифры (x) были 77, независимо от адреса маршрутизатора. Если ящик находится на маршрутизаторе 192.168.0.x, он установит свой статический IP-адрес как 192.168.0.77. Если ящик находится на маршрутизаторе 192.168.1.x, он установит свой статический IP-адрес как 192.168.1.77. И так далее... Есть ли способ сделать это в файле интерфейсов или wpa_supplicant?
1 ответ
1
Я написал скрипт для проверки текущего назначенного IP-адреса, а затем изменил его так, чтобы он заканчивался на 100.
Это работает, только если в сети работает DHCP. Если нет, вам нужно выполнить дополнительные действия для проверки IP-адреса маршрутизатора.
#!/bin/bash
#set interface
interface="eth0"
#read current IP address on interface
current_ip=`ifconfig $interface 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://'`
IP=`cut -f1,2,3 -d"." <<< $current_ip`
IP=$IP".100"
#check if IP is taken using ping
count=`ping -c 1 $IP | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }'`
if [ $count -eq 0 ]; then
#change IP if available
ifconfig $interface down
ifconfig $interface $IP up
ifconfig $interface
else
#IP change not possible
echo "IP not available"
fi
Он должен быть безопасным при проверке, если IP взят или нет в сети.
Не забывайте, что вам нужны привилегии root для его запуска.