Scapy 与参数
我正在尝试给我写的一个scapy脚本(scapy1.py)传递多个参数:
#! /usr/bin/env python
import sys
from scapy.all import *
p=sr1(IP(dst=sys.argv[1])/TCP(dport=sys.argv[2]))
我这样执行它:
./scapy1.py 192.168.1.100 80
但是这样执行并不正常,我收到了下面的错误:
Traceback (most recent call last):
File "./scapy1.py", line 6, in <module>
p=srp(IP(dst=sys.argv[1])/TCP(dport=sys.argv[2]))
File "/usr/local/lib/python2.7/dist-packages/scapy/base_classes.py", line 198, in __call__
i.__init__(*args, **kargs)
File "/usr/local/lib/python2.7/dist-packages/scapy/packet.py", line 84, in __init__
self.fields[f] = self.get_field(f).any2i(self,fields[f])
File "/usr/local/lib/python2.7/dist-packages/scapy/fields.py", line 733, in any2i
return self.any2i_one(pkt,x)
File "/usr/local/lib/python2.7/dist-packages/scapy/fields.py", line 722, in any2i_one
x = self.s2i[x]
KeyError: '22'
有没有人知道为什么这样不行?我知道如果我执行:
print sys.argv[1]
print sys.arvg[2]
1 个回答
2
试着用 dport
作为目标端口,然后把它转换成整数:
p=sr1(IP(dst=sys.argv[1])/TCP(dport=int(sys.argv[2])))