700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python流量监控 python监控历程网络流量

python流量监控 python监控历程网络流量

时间:2018-10-17 18:07:24

相关推荐

python流量监控 python监控历程网络流量

python监控进程网络流量

rt,各位大哥,python2.7+有没有高效监控进程级网络IO的方法?不用pcap

我只需要知道固定时间间隔中,客户端软件与服务器有没有交互就可以了;

或者给我讲解一下,下面这个代码

importsocket

importstruct

importthread

importthreading

importtime

importos

net_data={}

d_net_info={}

lock=threading.Lock()

defprint_data():

whileTrue:

lock.acquire()

forkeyinnet_data:

print"%s%s\n"%(key,net_data[key])

lock.release()

time.sleep(5);

defget_net_info():

net_info=os.popen('netstat-nbo').readlines()

forlinnet_info[4:]:

s=l.split()

iflen(s)>2:

key="%s%s"%(s[1],s[2])

key2="%s%s"%(s[2],s[1])

else:

ifnotd_net_info.has_key(key):

d_net_info[key]=s[0]

d_net_info[key2]=s[0]

defget_packet():

HOST=socket.gethostbyname(socket.gethostname())

s=socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_IP)

s.bind((HOST,0))

s.setsockopt(socket.IPPROTO_IP,socket.IP_HDRINCL,1)

s.ioctl(socket.SIO_RCVALL,socket.RCVALL_ON)

net_data["unknow"]=0

whileTrue:

buf=s.recvfrom(65565)

port=struct.unpack('HH',buf[0][20:24])

src_ip="%d.%d.%d.%d"%struct.unpack('BBBB',buf[0][12:16])

dest_ip="%d.%d.%d.%d"%struct.unpack('BBBB',buf[0][16:20])

src_port=socket.htons(port[0])

dest_port=socket.htons(port[1])

data_len=len(buf[0])

key="%s:%d%s:%d"%(src_ip,src_port,dest_ip,dest_port)

ifnotd_net_info.has_key(key):

get_net_info()

ifd_net_info.has_key(key):

key2="%s%s"%(key,d_net_info[key])

ifnet_data.has_key(key2):

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。