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之让人欢喜让人忧的迭代
Oct 02 Python
Python获取Linux系统下的本机IP地址代码分享
Nov 07 Python
举例讲解Python的Tornado框架实现数据可视化的教程
May 02 Python
python中numpy的矩阵、多维数组的用法
Feb 05 Python
详解Django中类视图使用装饰器的方式
Aug 12 Python
详解Python中的type和object
Aug 15 Python
pandas 使用均值填充缺失值列的小技巧分享
Jul 04 Python
python 列表推导式使用详解
Aug 29 Python
python 动态调用函数实例解析
Oct 21 Python
Python统计时间内的并发数代码实例
Dec 28 Python
tensorflow生成多个tfrecord文件实例
Feb 17 Python
Python闭包装饰器使用方法汇总
Jun 29 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 Image Resize图片大小调整的函数代码
2011/01/17 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
深入PHP许愿墙模块功能分析
2013/06/25 PHP
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
ThinkPHP单字母函数(快捷方法)使用总结
2014/07/23 PHP
PHP5.6读写excel表格文件操作示例
2019/02/26 PHP
PHP利用DWZ.CN服务生成短网址
2019/08/11 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
工作中常用到的JS表单验证代码(包括例子)
2010/11/11 Javascript
js时间日期和毫秒的相互转换
2013/02/22 Javascript
多次注册事件会导致一个事件被触发多次的解决方法
2013/08/12 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
JavaScript实现将xml转换成html table表格的方法
2015/04/17 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
Bootstrap警告框(Alert)插件使用方法
2017/03/21 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
原生js实现点击轮播切换图片
2020/02/11 Javascript
package.json中homepage属性的作用详解
2020/03/11 Javascript
Vue 的双向绑定原理与用法揭秘
2020/05/06 Javascript
echarts浮动显示单位的实现方法示例
2020/12/04 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
Python中类的继承代码实例
2014/10/28 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
python-str,list,set间的转换实例
2018/06/27 Python
Python爬虫+Tkinter制作一个翻译软件的示例
2021/02/20 Python
次世代生活态度:Hypebeast
2018/07/05 全球购物
庆六一活动总结
2014/08/29 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python
python自动化测试通过日志3分钟定位bug
2021/11/20 Python
python lambda 表达式形式分析
2022/04/03 Python
浅谈Python中对象是如何被调用的
2022/04/06 Python