수신된 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

관련 정보