Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在约塞米蒂安装Scapy_Python_Python 2.7_Homebrew_Osx Yosemite_Scapy - Fatal编程技术网

Python 在约塞米蒂安装Scapy

Python 在约塞米蒂安装Scapy,python,python-2.7,homebrew,osx-yosemite,scapy,Python,Python 2.7,Homebrew,Osx Yosemite,Scapy,我正试图用优胜美地操作系统在我的MacBookPro上运行Scapy 我用以下命令安装了它 brew install scapy 一切看起来都很好,但当我跑的时候 scapy 我得到这个错误 Traceback (most recent call last): File "/usr/local/bin/scapy", line 25, in <module> interact() File "/Library/Python/2.7/site-packages/scapy/main

我正试图用优胜美地操作系统在我的MacBookPro上运行Scapy

我用以下命令安装了它

brew install scapy
一切看起来都很好,但当我跑的时候

scapy
我得到这个错误

Traceback (most recent call last):
File "/usr/local/bin/scapy", line 25, in <module>
interact()
File "/Library/Python/2.7/site-packages/scapy/main.py", line 278, in
interact
scapy_builtins = __import__("all",globals(),locals(),".").__dict__
File "/Library/Python/2.7/site-packages/scapy/all.py", line 25, in   <module>
from route import *
File "/Library/Python/2.7/site-packages/scapy/route.py", line 162, in <module>
conf.route=Route()
File "/Library/Python/2.7/site-packages/scapy/route.py", line 22, in __init__
self.resync()
File "/Library/Python/2.7/site-packages/scapy/route.py", line 31, in resync
self.routes = read_routes()
File "/Library/Python/2.7/site-packages/scapy/arch/unix.py", line 86, in read_routes
ifaddr = scapy.arch.get_if_addr(netif)
File "/Library/Python/2.7/site-packages/scapy/arch/__init__.py", line 36, in get_if_addr
return socket.inet_ntoa(get_if_raw_addr(iff))
File "/Library/Python/2.7/site-packages/scapy/arch/pcapdnet.py", line 201, in get_if_raw_addr
return i.get(ifname)["addr"].data
File "dnet.pyx", line 990, in dnet.intf.get
OSError: Device not configured`
我明白了:

Traceback (most recent call last):
File "/usr/local/bin/scapy", line 25, in <module>
interact()
File "/Library/Python/2.7/site-packages/scapy/main.py", line 278, in interact
scapy_builtins = __import__("all",globals(),locals(),".").__dict__
File "/Library/Python/2.7/site-packages/scapy/all.py", line 25, in <module>
from route import *
File "/Library/Python/2.7/site-packages/scapy/route.py", line 162, in <module>
conf.route=Route()
File "/Library/Python/2.7/site-packages/scapy/route.py", line 22, in __init__
self.resync()
File "/Library/Python/2.7/site-packages/scapy/route.py", line 31, in resync
self.routes = read_routes()
File "/Library/Python/2.7/site-packages/scapy/arch/unix.py", line 86, in read_routes
ifaddr = scapy.arch.get_if_addr(netif)
File "/Library/Python/2.7/site-packages/scapy/arch/__init__.py", line 36, in get_if_addr
return socket.inet_ntoa(get_if_raw_addr(iff))
File "/Library/Python/2.7/site-packages/scapy/arch/pcapdnet.py", line 201, in get_if_raw_addr
return i.get(ifname)["addr"].data
KeyError: 'addr'
回溯(最近一次呼叫最后一次):
文件“/usr/local/bin/scapy”,第25行,在
相互作用()
文件“/Library/Python/2.7/site packages/scapy/main.py”,第278行,在interact中
scapy_builtins=uuu import_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu__
文件“/Library/Python/2.7/site packages/scapy/all.py”,第25行,在
从路线导入*
文件“/Library/Python/2.7/site packages/scapy/route.py”,第162行,在
conf.route=route()
文件“/Library/Python/2.7/site packages/scapy/route.py”,第22行,在__
self.resync()
文件“/Library/Python/2.7/site packages/scapy/route.py”,第31行,在resync中
self.routes=read_routes()
文件“/Library/Python/2.7/site packages/scapy/arch/unix.py”,第86行,以只读方式
ifaddr=scapy.arch.get\u if\u addr(netif)
文件“/Library/Python/2.7/site-packages/scapy/arch/_-init___;.py”,第36行,在get\u if\u addr中
返回socket.inet\u ntoa(如果原始地址(iff))则获取
文件“/Library/Python/2.7/site packages/scapy/arch/pcapdnet.py”,第201行,在get\u if\u raw\u addr中
返回i.get(ifname)[“addr”].data
KeyError:'地址'

我遇到了与“addr”键错误完全相同的问题,并解决了它(您的第一个错误是权限-因此是的,您需要sudo)

通过编辑底层Python代码以获取一些调试信息,我可以看到正在检查的接口上没有设置IP地址,但操作系统有一个(旧/手动)静态路由,它利用了这个未配置的接口

当dnet加载/导入时,它正在遍历路由,然后检查接口以获得IP(它无法获得IP,因为我不再使用它,因此它没有IP)


删除了静态路由,工作正常。

我遇到了与“addr”键错误完全相同的问题,并解决了它(您的第一个错误是权限-因此,是的,您需要sudo)

通过编辑底层Python代码以获取一些调试信息,我可以看到正在检查的接口上没有设置IP地址,但操作系统有一个(旧/手动)静态路由,它利用了这个未配置的接口

当dnet加载/导入时,它正在遍历路由,然后检查接口以获得IP(它无法获得IP,因为我不再使用它,因此它没有IP)

删除了静态路由,工作正常。

您的问题是一个问题。在他们解决问题之前,您可以尝试以下方法:

在文件
scapy/arch/unix.py
中添加
elif scapy.arch.DARWIN:
部分:

def read_routes():
    if scapy.arch.SOLARIS:
        f=os.popen("netstat -rvn") # -f inet
    elif scapy.arch.FREEBSD:
        f=os.popen("netstat -rnW") # -W to handle long interface names
    elif scapy.arch.DARWIN:
        f = os.popen("netstat -rn | grep -v vboxnet")  # Fix OSX problem            
    else:
        f=os.popen("netstat -rn") # -f inet
    ok = 0
    mtu_present = False
如果你找不到scapy的位置,你可以跑步

python -v
>>> import scapy
import scapy # directory /Library/Python/2.7/site-packages/scapy
你的问题是一个问题。在他们解决问题之前,您可以尝试以下方法:

在文件
scapy/arch/unix.py
中添加
elif scapy.arch.DARWIN:
部分:

def read_routes():
    if scapy.arch.SOLARIS:
        f=os.popen("netstat -rvn") # -f inet
    elif scapy.arch.FREEBSD:
        f=os.popen("netstat -rnW") # -W to handle long interface names
    elif scapy.arch.DARWIN:
        f = os.popen("netstat -rn | grep -v vboxnet")  # Fix OSX problem            
    else:
        f=os.popen("netstat -rn") # -f inet
    ok = 0
    mtu_present = False
如果你找不到scapy的位置,你可以跑步

python -v
>>> import scapy
import scapy # directory /Library/Python/2.7/site-packages/scapy

它的可能副本仍然不工作,相同的错误。我也尝试过新安装的scapy,但没有任何改变。您是否以root用户身份运行scapy?我尝试过,但它仍然返回错误。当然,您查看了它的可能副本,但仍然不工作,相同的错误。我也尝试过新安装的scapy,但没有任何改变。您以root用户身份运行scapy吗?我尝试过,但仍然返回错误。当然,您已经看过了