1. ubuntu下安装gnuplot 

转自:http://blog.163.com/gz_ricky/blog/static/182049118201362501316961/


2.安装PyX
sudo pip install pyx==0.12.1

3.安装scapy
pip install scapy

二.SCAPY
参考文档 http://www.secdev.org/projects/scapy/doc/usage.html
主要函数:
send,sendp, sr,sr1 ,  sniff, rdpcap,   make_table,
sr(IP(dst="192.168.1.1")/TCP(sport=RandShort(),dport=[440,441,442,443],flags="S"))
ans,unans = sr(IP(dst=["192.168.1.1","yahoo.com","slashdot.org"])/TCP(dport=[22,80,443],flags="S"))
 ans.summay, ans.filter,
 a=rdpcap("/spare/captures/isakmp.cap")

   sniff(iface="wifi0", filter='icmp and host 1.1.1.1',prn=lambda x: x.summary()) #x.show
   
   pkts = sniff(prn=lambda x:x.sprintf("{IP:%IP.src% -> %IP.dst%\n}{Raw:%Raw.load%\n}"))
   
   
   p = sniff(iface="wifi0", filter='tcp and host 1.1.1.1',count=1)
   p.show()
   p[0]
   p[0].src , p[0].dst,


sniff 如何抓取vlan:

>>> conf.use_pcap = True                      #步骤1
>>> import scapy.arch.pcapdnet    #步骤2
>>> conf.L2listen
<L2pcapListenSocket: read packets at layer 2 using libpcap>   #确认此处为libpcap
>>> p = sniff(iface='eth0',count=2,filter='udp',timeout=10)
WARNING: __del__: don't know how to close the file descriptor. Bugs ahead ! Please report this bug.         #报错原因未知
>>>
>>> p[0]         #结果如下,抓到vlan 100
<Ether  dst=00:d0:f8:00:00:01 src=00:d0:f8:00:00:02 type=0x8100 |<Dot1Q  prio=3L id=0L vlan=100L type=0x800 |<IP  version=4L ihl=5L tos=0x42 len=136 id=0 flags= frag=0L ttl=64 proto=udp chksum=0xf712 src=192.168.1.102 dst=192.1.1.1 options=[] |<UDP  sport=12 dport=457 len=116 chksum=0xff87 |<Raw  load='\x00p8\xbcP\x00\x00\x003c\x00\x00\x00\x00\x00\x00\x00\x00\xbe\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' |>>>>>