我试图将多个参数传递给我编写的一个替罪羊脚本(sceary1.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]发布于 2014-06-06 20:32:25
尝试将dport用于目的地并将其转换为int:
p=sr1(IP(dst=sys.argv[1])/TCP(dport=int(sys.argv[2])))https://stackoverflow.com/questions/24090039
复制相似问题