example.py

来自「此包是为perl或者 Python等高级语言提供一个库」· Python 代码 · 共 68 行

PY
68
字号
#!/usr/bin/python# need root privilegesimport structimport sysimport timefrom socket import AF_INET, AF_INET6, inet_ntoasys.path.append('python')sys.path.append('build/python')import nfqueuesys.path.append('dpkt-1.6')from dpkt import ipdef cb(i,payload):	print "python callback called !", i	print "payload len ", payload.get_length()	data = payload.get_data()	pkt = ip.IP(data)	print "proto:", pkt.p	print "source: %s" % inet_ntoa(pkt.src)	print "dest: %s" % inet_ntoa(pkt.dst)	if pkt.p == ip.IP_PROTO_TCP:	 	print "  sport: %s" % pkt.tcp.sport	 	print "  dport: %s" % pkt.tcp.dport        payload.set_verdict(nfqueue.NF_DROP)	sys.stdout.flush()	return 1q = nfqueue.queue()print "open"q.open()print "bind"q.bind();#print "setting callback (should fail, wrong arg type)"#try:#	q.set_callback("blah")#except TypeError, e:#	print "type failure (expected), continuing"print "setting callback"q.set_callback(cb)print "creating queue"q.create_queue(0)print "trying to run"try:	q.try_run()except KeyboardInterrupt, e:	print "interrupted"print "unbind"q.unbind()print "close"q.close()

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?