python截取报文的程序代码记录

python截取报文的程序代码记录,需要安装pcap和dpkt两个包,和安装WinPcap , 我的python是2.5版本, 一切操作在windows下

WinPcap: http://www.winpcap.org/install/default.htm

dpkt:http://code.google.com/p/dpkt/downloads/list
没有windows python2.5的,所以自己下载那个dpkt-1.7.tar.gz, 解开后执行python setup.py install , 一切正常安装

pcap: http://code.google.com/p/pypcap/downloads/list, 下载windows python2.5那个

代码:

#coding=gbk
import pcap
import dpkt

hostlist=[‘360safe’, ‘360.cn’]

a=pcap.pcap()
a.setfilter(‘tcp port 80′)
# 可以是’tcp’ ‘udp’ ‘port 80’等过滤用的
for i,j in a:
tem=dpkt.ethernet.Ethernet(j)
#print (“%s %x”,i,tem)
ip=tem.data
tcp=ip.data
#print icp.data
#geturl_start=tcp.data.find(‘GET / HTTP/1.1’)
geturl_start=tcp.data.find(‘GET ‘)
if geturl_start !=-1:
mystr= tcp.data
#print mystr
host_start=mystr.find(‘Host: ‘)
if host_start != -1:
host_end=mystr.find(‘\r\n’, host_start)
if host_end != -1:

host=mystr[host_start:host_end]

k=0
for _host in hostlist:
#print “test:”,host.find(_host)
if host.find(_host) !=-1:
k=1
break

if k==1:
continue

print “———”
print host
#print mystr


目的是截取host主机出来, 监控80端口, hostlist是为了过滤360卫士和360杀毒的请求

关于无聊人

一个无聊人而已
此条目发表在python分类目录,贴了, , 标签。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注