Python实现TCP探测目标服务路由轨迹的原理与方法详解


Posted in Python onSeptember 04, 2019

本文实例讲述了Python实现TCP探测目标服务路由轨迹的原理与方法。分享给大家供大家参考,具体如下:

一 点睛

在此次实践中,通过scapy的traceroute()方法实现探测机到目标服务器的路由轨迹,整个过程的原理见下图,首先通过探测机以SYN方式进行TCP服务扫描,同时启动tcpdump进行抓包,捕获扫描过程经过的所有路由点,再通过graph()方法进行路由IP轨迹绘制,中间调用ASN映射查询IP地理信息并生成svg流程文档,最后使用ImageMagick工 具将svg格式转换成png,流程结束。

Python实现TCP探测目标服务路由轨迹的原理与方法详解

二 代码

# -*- coding: utf-8 -*-
import os,sys,time,subprocess
import warnings,logging
#屏蔽scapy 无用告警信息
warnings.filterwarnings("ignore", category=DeprecationWarning)
#屏蔽模块IPv6 多余告警
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import traceroute
#接受输入的域名或IP
domains = raw_input('Please input one or more IP/domain: ')
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", ASres=None, type="svg")  #生成svg矢量图形
  time.sleep(1)
  #svg转png格式
  subprocess.Popen("/usr/bin/convert test.svg test.png", shell=True)
else:
  print "IP/domain number of errors,exit"

三 结果

Python实现TCP探测目标服务路由轨迹的原理与方法详解

Python实现TCP探测目标服务路由轨迹的原理与方法详解

四 参考

https://github.com/secdev/scapy/issues/1480

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
phpsir 开发 一个检测百度关键字网站排名的python 程序
Sep 17 Python
Python文档生成工具pydoc使用介绍
Jun 02 Python
构建Python包的五个简单准则简介
Jun 15 Python
Python中的单继承与多继承实例分析
May 10 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
Jun 13 Python
使用Py2Exe for Python3创建自己的exe程序示例
Oct 31 Python
在Pandas中处理NaN值的方法
Jun 25 Python
python实现图片压缩代码实例
Aug 12 Python
pandas DataFrame运算的实现
Jun 14 Python
Python3爬虫里关于代理的设置总结
Jul 30 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
Feb 25 Python
使用tkinter实现三子棋游戏
Feb 25 Python
基于python全局设置id 自动化测试元素定位过程解析
Sep 04 #Python
Django框架 querySet功能解析
Sep 04 #Python
Django框架 查询Extra功能实现解析
Sep 04 #Python
Django框架 Pagination分页实现代码实例
Sep 04 #Python
python 动态迁移solr数据过程解析
Sep 04 #Python
Django框架 信号调度原理解析
Sep 04 #Python
Django Admin中增加导出Excel功能过程解析
Sep 04 #Python
You might like
php实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
Laravel 6.2 中添加了可调用容器对象的方法
2019/10/22 PHP
extjs中grid中嵌入动态combobox的应用
2011/01/01 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
详解开源的JavaScript插件化框架MinimaJS
2017/10/26 Javascript
vue项目中使用Svg的方法
2018/10/24 Javascript
ios中视频的最后一桢问题解决
2019/05/14 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
python获取豆瓣电影简介代码分享
2014/01/16 Python
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
Python实现基于二叉树存储结构的堆排序算法示例
2017/12/08 Python
python语言元素知识点详解
2019/05/15 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
使用python的turtle绘画滑稽脸实例
2019/11/21 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
django 实现简单的插入视频
2020/04/07 Python
使用html2canvas实现浏览器截图的示例代码
2018/01/26 HTML / CSS
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
Chicco婴儿用品美国官网:汽车座椅、婴儿推车、高脚椅等
2018/11/05 全球购物
string = null 和string = ''的区别
2013/04/28 面试题
自荐信不宜过于夸大
2013/11/06 职场文书
行政主管岗位职责
2013/11/18 职场文书
商业活动邀请函
2014/02/04 职场文书
市优秀教师事迹材料
2014/02/05 职场文书
幼儿园运动会口号
2014/06/07 职场文书
乡镇干部先进性教育活动个人整改措施
2014/09/16 职场文书
乡镇党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
社会治安综合治理责任书
2015/01/29 职场文书
2016年感恩母亲节活动总结
2016/04/01 职场文书