1.环境:Centos7+python3.6
2.scapy模块介绍:
**Scapy是一个强大的基于Python的交互式包操作程序和库。
它能够伪造或解码大量协议的数据包,在有线上发送它们,捕获它们,使用pcapfile存储或读取数据包,匹配请求和答复,等等。
它被设计为通过使用可用的默认值来允许快速的数据包原型化。
它可以轻松地处理大多数经典任务,如扫描、跟踪、探测、单元测试、攻击或网络发现(它可以替换hping,85%nmap, arpspoof, arp-sk, arping, tcpdump, wireshark, p0f等等)。它还能很好地执行大多数其他工具无法处理的许多其他特定任务,如发送无效帧、注入您自己的802.11帧、组合技术(VLAN跳变+ARP缓存中毒、WEP保护信道上的VoIP解码等)。**
3.yum安装相关依赖程序

yum -y install tcpdump graphviz ImageMagick

4.到GitHub上下载安装包,进行编译安装

#https://github.com/secdev/scapy
cd scapy-master/
python setup.py install

5.scapy生成动态路由轨迹图代码示例

#!/usr/bin/python3
#-*-coding:UTF-8-*-
import os,sys,time,subprocess
import logging,warnings
warnings.filterwarnings("ignore",category=DeprecationWarning)   #屏蔽scapy无用警告信息
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)      #屏蔽模块IPV6多余警告
from  scapy.all import traceroute
domains = input('请输入IP地址或域名地址:')
target = domains.split(' ')
dport = [80]    #扫描的端口列表
if len(target) >=1 and target[0] !='':
        res,unans = traceroute(target,dport=dport,retry=2)      #启动路由跟踪
        res.graph(target="> test.svg")  #生成svg矢量图形
        time.sleep(1)
        subprocess.Popen("/usr/bin/convert test.svg test.png", shell=True)
        #svg转png格式
else:
        print('IP/domain number of errors,exit')