📄 example.py
字号:
#!/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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -