受信したIPアドレスに基づいてコマンドを実行する

受信したIPアドレスに基づいてコマンドを実行する

私はLinuxがDHCPを介して受信するIPアドレスに基づいてコマンドを実行するbash / pythonスクリプトを持つことができるかどうかを考えていました。

例えば

  • 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

関連情報