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 相关文章推荐
Python字符遍历的艺术
Sep 06 Python
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 Python
Python函数学习笔记
Oct 07 Python
Python中的下划线详解
Jun 24 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
Aug 25 Python
python中嵌套函数的实操步骤
Feb 27 Python
python3实现字符串操作的实例代码
Apr 16 Python
Python基于scipy实现信号滤波功能
May 08 Python
python字典一键多值实例代码分享
Jun 14 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
Feb 22 Python
python异常中else的实例用法
Jun 15 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安装全攻略:APACHE
2006/10/09 PHP
php防止网站被刷新的方法汇总
2014/12/01 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
一起来写段JS drag拖动代码
2010/12/09 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
js异常捕获方法介绍
2013/04/10 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
jquery.idTabs 选项卡使用示例代码
2014/09/03 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
2016/10/21 Javascript
AngularJS常见过滤器用法实例总结
2017/07/06 Javascript
理解 javascript 中的函数表达式与函数声明
2017/07/07 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
Vue异步组件处理路由组件加载状态的解决方案
2018/09/07 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
使用Angular material主题定义自己的组件库的配色体系
2019/09/04 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
Python线程中对join方法的运用的教程
2015/04/09 Python
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
对python的输出和输出格式详解
2018/12/08 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
2020/03/19 Python
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
Under Armour澳大利亚官网:美国知名的高端功能性运动品牌
2018/02/22 全球购物
H&M旗下高端女装品牌:& Other Stories
2018/05/07 全球购物
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
《沉香救母》教学反思
2014/04/19 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
Filebeat 采集 Nginx 日志的方法
2021/03/31 Servers
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis