首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"TypeError:'IP‘对象不可调用“

"TypeError:'IP‘对象不可调用“
EN

Stack Overflow用户
提问于 2018-10-10 09:24:01
回答 2查看 1K关注 0票数 1

在我的Scapy脚本中,我得到了一个错误,我找不到原因。

代码语言:javascript
复制
#!/usr/bin/python
from scapy.all import *
from settings import *

#Create  Layer-2 Frame. 
l2 = Ether( dst=dst, src=src, type=2048) #dst and src from settings
pkt = IP(dst=dst)/ICMP(type=8)/Raw(load=("X"*10000))
#Create some big pings:
for i in range(10000,10020):
    frags = fragment(pkt) #create Fragments    
    for fragment in frags:
        sendp(l2/fragment, iface=iface)
    print("i: " + str(i))

Scapy发送了一整包,之后,我变成了错误消息:

TypeError:“IP”对象不可调用

谁能告诉我怎么解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-10 11:21:15

您正在用一个fragment循环变量重写for函数,因此fragment在外部循环的下一次迭代中成为不可调用的对象。

您应该将fragment变量重命名为其他内容:

代码语言:javascript
复制
for frag in frags:
    sendp(l2/frag, iface=iface)
票数 1
EN

Stack Overflow用户

发布于 2018-10-10 09:41:36

您必须在IP中使用不同的不可调用值定义settings.py,这样由scapy包定义的IP类就会被重写。您可以通过将IP变量重命名为settings.py中的其他变量来解决此问题。或者,您可以执行import settings而不是from settings import *,然后将settings.py中的IP变量称为settings.IP

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52736851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档