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实现二分法算法实例
Feb 02 Python
Python常用内置函数总结
Feb 08 Python
python让图片按照exif信息里的创建时间进行排序的方法
Mar 16 Python
举例讲解Linux系统下Python调用系统Shell的方法
Nov 07 Python
python嵌套字典比较值与取值的实现示例
Nov 03 Python
Python subprocess库的使用详解
Oct 26 Python
解决django前后端分离csrf验证的问题
Feb 03 Python
Python实现元素等待代码实例
Nov 11 Python
Python Gluon参数和模块命名操作教程
Dec 18 Python
Transpose 数组行列转置的限制方式
Feb 11 Python
Python使用pycharm导入pymysql教程
Sep 16 Python
Python卷积神经网络图片分类框架详解分析
Nov 07 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生成excel列序号代码实例
2013/12/24 PHP
php之curl设置超时实例
2014/11/03 PHP
浅谈json_encode用法
2015/03/05 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
PHP实现随机发放扑克牌
2020/04/21 PHP
php自动加载代码实例详解
2021/02/26 PHP
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
jquery实现的一个简单进度条效果实例
2014/05/12 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
微信小程序 location API接口详解及实例代码
2016/10/12 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
浅析javaScript中的浅拷贝和深拷贝
2017/02/15 Javascript
Angular @HostBinding()和@HostListener()用法
2018/03/05 Javascript
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
2019/05/21 Javascript
layui.tree组件的使用以及搜索节点功能的实现
2019/09/26 Javascript
JS算法教程之字符串去重与字符串反转
2020/12/15 Javascript
python数据结构之图深度优先和广度优先实例详解
2015/07/08 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
Flask-Mail用法实例分析
2018/07/21 Python
Python列表(List)知识点总结
2019/02/18 Python
python字典的值可以修改吗
2020/06/29 Python
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
实习生的自我评价
2014/01/08 职场文书
2014年大学生四年规划书范文
2014/04/03 职场文书
中学生演讲稿
2014/04/26 职场文书
毕业生应聘求职信
2014/07/10 职场文书
企业党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
加强党性修养心得体会
2016/01/21 职场文书