首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

Python编程有关问题,恳请高手解惑

2012-03-29 
Python编程问题,恳请高手解惑最近迷上了Python,在思考怎样用Python写个程序实现对指定网络端口的数据包的

Python编程问题,恳请高手解惑
最近迷上了Python,在思考怎样用Python写个程序实现对指定网络端口的数据包的抓取和解析,恳请高手指教!!

[解决办法]
你应该看看TCP/IP编程,Python只是一个工具。
[解决办法]
你好!
首先,实现捕包的功能需要使用wincap(windows下),或者libpcap(Linux下)。
而Python提供了几个libpcap bind,不如:http://monkey.org/~dugsong/pypcap/,这里有一个最简单的。
在windows平台上,你需要先安装winpcap。

下面是一个规范的抓包过程例子:

import pcap
import dpkt
pc=pcap.pcap() #注,参数可为网卡名,如eth0
pc.setfilter('tcp port 80') #设置监听过滤器
for ptime,pdata in pc: #ptime为收到时间,pdata为收到数据
print ptime,pdata #...

对抓到的以太网V2数据包(raw packet)进行解包

p=dpkt.ethernet.Ethernet(pdata)
if p.data.__class__.__name__=='IP':
ip='%d.%d.%d.%d'%tuple(map(ord,list(p.data.dst)))
if p.data.data.__class__.__name__=='TCP':
if data.dport==80:
print p.data.data.data # by gashero

一些显示参数

nrecv,ndrop,nifdrop=pc.stats()
返回的元组中,第一个参数为接收到的数据包,(by gashero)第二个参数为被核心丢弃的数据包。
good luck!

[解决办法]

探讨

大侠有中文版的不?

热点排行