Мне нужно настроить несколько систем 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

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 для его запуска.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .