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 django 实现验证码的功能实例代码
May 18 Python
numpy.random.seed()的使用实例解析
Feb 03 Python
python 字典中取值的两种方法小结
Aug 02 Python
一个可以套路别人的python小程序实例代码
Apr 09 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
Jul 19 Python
Django 导出项目依赖库到 requirements.txt过程解析
Aug 23 Python
使用Tensorflow实现可视化中间层和卷积层
Jan 24 Python
python tkinter GUI绘制,以及点击更新显示图片代码
Mar 14 Python
3种适用于Python的疯狂秘密武器及原因解析
Apr 29 Python
使用Python FastAPI构建Web服务的实现
Jun 08 Python
Python DES加密实现原理及实例解析
Jul 17 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Jun 11 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
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
Yii使用ajax验证显示错误messagebox的解决方法
2014/12/03 PHP
php判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
javascript 函数使用说明
2010/04/07 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
jquery中each遍历对象和数组示例
2014/08/05 Javascript
jquery带动画效果幻灯片特效代码
2015/08/27 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
JavaScript 详解预编译原理
2017/01/22 Javascript
Bootstrap如何激活导航状态
2017/03/22 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
js+css实现全屏侧边栏
2020/06/16 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
react使用antd表单赋值,用于修改弹框的操作
2020/10/29 Javascript
Python获取文件所在目录和文件名的方法
2017/01/12 Python
利用python求相邻数的方法示例
2017/08/18 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
2019/02/20 Python
Python中一般处理中文的几种方法
2019/03/06 Python
用python写一个定时提醒程序的实现代码
2019/07/22 Python
详解numpy.meshgrid()方法使用
2019/08/01 Python
python实现查找所有程序的安装信息
2020/02/18 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
Pycharm如何导入python文件及解决报错问题
2020/05/10 Python
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
春节联欢晚会主持词
2014/03/24 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
入党转正介绍人意见
2015/06/03 职场文书
网络研修心得体会
2016/01/08 职场文书
比较node.js和Deno
2021/04/27 Javascript