我正在考虑是否可以有一个 bash/python 脚本来根据 Linux 通过 DHCP 接收到的 IP 地址触发命令。
例如
- 收到 DHCP:10.50.10.51 /24 运行命令 XYZ
- 收到 DHCP:10.50.20.84 /24 运行命令 XYZ02
这是否可以做到以及命令是什么。我认为读取 IP 地址的变量可能是基本的,但不确定。
谢谢
答案1
这取决于您的 DHCP 客户端。
例如,dhclient
有选项-sf
:
-sf script-file
dhclient 获得租约时调用的网络配置脚本的路径。
许多其他 DHCP 客户端也可以选择调用脚本。在那里您可以检查地址并执行您想要的操作。
答案2
#!/usr/bin/env perl
$result = `dhclient -v 2>&1 | grep bound | cut -d' ' -f3`;
chomp($result);
if ($result eq '10.50.10.51') {
`echo doing XYZ`;
}
elsif ($result eq '10.50.20.84') {
`echo doing XYZ02`;
}
else {
print "[$result]\n";
}
您必须使用以下命令运行脚本,sudo
因为dhclient
需要提升权限
sudo perl script.pl