根据收到的 IP 地址运行命令

根据收到的 IP 地址运行命令

我正在考虑是否可以有一个 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

相关内容