如何知道我的IP无效

Pet*_*Mmm 3 networking scripting linux

我有一个脚本正在运行,它将启动一个具有新 IP 的接口。

如果脚本提出了一个已经在使用的 IP,我就有麻烦了。

脚本是否有可能设置新的 Ip,检测到该 IP 已被使用,然后检查下一个,直到找到一个有效的 ip?

B=192.168.1.
I=1
while [ "$I" != "256" ]
do
ifconfig eth0:1 $B.$I
# check here that IP is Ok !
let "I=I+1"
done
Run Code Online (Sandbox Code Playgroud)

我无法使用 DHCP。

waz*_*oox 13

不,如果您使用已在使用的 IP,将会出现不可预测的行为。您的网络或其他机器的网络将停止工作,或将随机工作等。正确的做法是使用 DHCP。

  • +1 这正是 DHCP 的用途! (8认同)

chm*_*eee 10

你可以这样使用arping

arping -D -I interface -c 2 ip_address > /dev/null
Run Code Online (Sandbox Code Playgroud)

并检查返回值 ( $?):

  • 0: 没有冲突
  • 1: 冲突

您可以在 之前执行它,ifconfig因为它不需要 IP 地址(即 ARP)。因此,预计不会出现“不可预测”的行为。