서문
교통정보는 /proc/net/dev
에서 직접 볼 수 있습니다. 저자가 구현한 프로그램은
python net.py interface명령을 사용합니다.
interface
이 네트워크 카드 이름인 경우, 어떤 네트워크 카드가 사용되는지, 컴퓨터에 어떤 네트워크 카드가 있는지는
sudo ifconfig
확인해보세요.
Python으로 구현한 프로그램은 다음과 같습니다.
# coding:utf-8 import sys, time, os ''' Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo: 28169 364 0 0 0 0 0 0 28169 364 0 0 0 0 0 0 wlan1: 7432984 6018 0 0 0 0 0 0 681381 6115 0 0 0 0 0 0 vmnet1: 0 0 0 0 0 0 0 0 0 56 0 0 0 0 0 0 vmnet8: 0 0 0 0 0 0 0 0 0 55 0 0 0 0 0 0 eth0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ''' _unit_=['B','KB','MB','GB','TB'] def get_net_data(interface): for line in open('/proc/net/dev', 'r'): if line.split(':')[0].find(interface)>=0: return map(int, line.split(':')[1].split()) def convert_bytes_to_string(b): cnt = 0 while b >= 1024.0: b = float(b) / 1024.0 cnt += 1 return '%.2f%s'%(b,_unit_[cnt]) if __name__ == '__main__': interface = sys.argv[1] while True: net_data = get_net_data(interface) receive_data_bytes = net_data[0] transmit_data_bytes = net_data[8] os.system('clear') print 'Interface:%s -> Receive Data: %s Transmit Data: %s'%(interface, convert_bytes_to_string(receive_data_bytes), convert_bytes_to_string(transmit_data_bytes)) time.sleep(1)
프로그램 항목은 if name=='main'
에서 시작하려면 먼저 매개변수를 통해 interface
를 가져온 다음 get_net_data()
함수를 호출하여 교통 정보를 가져온 다음 일부 데이터를 처리합니다.
요약
위 내용은 모두의 공부나 업무에 도움이 되었으면 좋겠습니다. 따라서 궁금한 점이 있으면 메시지를 남겨서 소통할 수 있습니다.
Python에서 시스템 네트워크 트래픽을 보는 방법에 대한 자세한 내용은 PHP 중국어 웹사이트를 참고하세요!