scapy AttributeError: 'NoneType' object has no attribute 'route'解决办法

我在用scapy构造畸形icmp报文的时候遇到这么一个问题

Traceback (most recent call last):
  File "icmp_abnormal.py", line 12, in <module>
    send(pkt, inter=0.01, count=30)
  File "/usr/lib/python2.6/site-packages/scapy/sendrecv.py", line 251, in send
    __gen_send(conf.L3socket(*args, **kargs), x, inter=inter, loop=loop, count=count,verbose=verbose, realtime=realtime)
  File "/usr/lib/python2.6/site-packages/scapy/sendrecv.py", line 234, in __gen_send
    s.send(p)
  File "/usr/lib/python2.6/site-packages/scapy/arch/linux.py", line 383, in send
    iff,a,gw  = x.route()
  File "/usr/lib/python2.6/site-packages/scapy/layers/inet.py", line 369, in route
    return conf.route.route(dst)
AttributeError: 'NoneType' object has no attribute 'route'


其中源码为

      1 __author__ = 'ligengyong'
      2 
      3 import struct
      4 
      5 from scapy.layers.inet import IP, ICMP
      6 from scapy.sendrecv import send
      7 
      8 
      9 
     10 data = struct.pack('=BHI', 0x12, 20, 1000)
     11 pkt = IP(src='10.6.2.2',dst = '33.33.33.102')/ICMP(chksum=1)/data
     12 send(pkt, inter=0.01, count=30)


后来发现是conf的问你,需要把这个导入进来from scapy.all import conf

加上这句话就ok了

但是不能加from scapy.config import conf 虽然这两个引用的是同一个对象,经过查看源码


route = None # Filed by route.py
route6 = None # Filed by route6.py


个人认为应该是from scapy.all import conf涉及到route.py的一些初始化操作,而from scapy.config import conf 

引用范围小,没有这个操作


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值