1. Mac平台
在mac上安裝scapy可以說是困難重重,一來因為scapy實在有些小衆和老舊,再加上安裝說明文檔都是python2.5 也沒有詳細說明一些安裝問題。
折騰了大概三個小時之後終于解決了這個老大難。
注:我的環境為anaconda2.3 - python2.7.10
一,首先scapy依賴了以下幾個庫:
1.PyX :
2.pcapy
3.gnuplot-py
4.dnet
其中gnuplot-py 以及pyx一定要使用官方網站上面的指定版本。
如果你FQ不友善,請使用我的備份庫github: https://github.com/todototry/scapyInstallDependents
二,dnet是個大坑,
1. 需要注意的是dnet不能使用官方版本,需要使用libdnet1.12, 并configure ; make install 逐漸安裝,一定要記得進入該dnet的python子檔案夾安裝其對應的python庫。
2. 安裝好之後請注意檢查python的對應site-package中是否有dnet.so 這個檔案。
3.如果出現cannot import dnet 可能的原因是:沒有安裝dnet的依賴庫: pip install graphillion
4. 如果遵照上述方法安裝後,任然出現AttributeError: 'module' object has no attribute 'intf', 請使用pip uninstall pydnet , 可能是官網的pydnet 與 libdnet1.12中的python接口沖突引起的。
三,如果sniff出現 pcapy權限不足
請解除安裝pcapy, 用pypcap替代,完美解決pcap權限問題。參見以下
2. Windows平台
由于我安裝了anaconda,python2.7, 按照官方提供的package,需要python2.5,是以需要網絡搜尋到python2.7的安裝包,并要注意,一定要在安裝pcap和dnet時 使用administrator身份運作,因為這涉及到系統層級的網絡操作,并配置好gnuplot,pcap的env。
參考:
1. 官網:http://www.secdev.org/projects/scapy/doc/installation.html
2. dnet安裝與dnet.so 依賴問題,http://stackoverflow.com/questions/26229057/scapy-installation-fails-on-osx-with-dnet-import-error
3. http://juhalaaksonen.com/blog/2013/12/11/installing-scapy-for-mac-os-x/
4. https://github.com/dugsong/libdnet/issues/9
5. AttributeError: 'module' object has no attribute 'intf' 解決方案: https://github.com/Homebrew/homebrew-python/issues/212