我需要设置几个 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
我编写了一个脚本来检查当前分配的 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 权限才能运行它。