파일의 특정 인터페이스의 네트워크 트래픽을 모니터링하고 싶습니다.
그런 다음 총 트래픽이 60MB를 초과하면 인터페이스를 중지하고 싶습니다.
이를 수행할 수 있는 방법이 있습니까?
답변1
답변2
이것은진짜더티 메소드는 Perl 및 Perl system
명령과 함께 사용할 수 있습니다. 인터페이스 wlan0의 전체 패킷이 파일로 덤프 tcpdump
됩니다 . 내 예에서는 파일이 1MB를 초과하면 모든 프로세스를 중지하고 인터페이스를 닫습니다. 귀하의 필요에 맞게 변경하십시오. 그것을 실행하십시오 . 이 명령문은 프로그램을 일시 중지하여 시작할 기회를 제공합니다.-s 0
-i wlan0
tcpdump.pcap
sudo
sleep
tcpdump
저는 Linux Mint를 사용하고 있으므로 시스템에 따라 프로그램 경로와 인터페이스 이름이 다를 수 있습니다.
#!/usr/bin/perl
use warnings;
use strict;
my $file = 'tcpdump.pcap';
my $int = 'wlan0';
my $bytes = 1000000;
my $pid = open my $pipe,
"| /usr/sbin/tcpdump -n -i $int -s 0 -w $file &",
or die $!;
sleep 3;
while (1){
if (-s $file > $bytes){
print "Killing PID $pid, tcpdump and disabling $int\n";
system "kill -9 $pid; killall tcpdump";
system "/sbin/ifconfig $int down";
exit;
}
}