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 相关文章推荐
Django实现图片文字同时提交的方法
May 26 Python
Python变量作用范围实例分析
Jul 07 Python
全面了解Python环境配置及项目建立
Jun 30 Python
Python内置模块turtle绘图详解
Dec 09 Python
Python字典,函数,全局变量代码解析
Dec 18 Python
python的socket编程入门
Jan 29 Python
matplotlib 输出保存指定尺寸的图片方法
May 24 Python
Python实战之制作天气查询软件
May 14 Python
python类的实例化问题解决
Aug 31 Python
Django model class Meta原理解析
Nov 14 Python
Python中如何处理常见报错
Jan 18 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 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
Smarty Foreach 使用说明
2010/03/23 PHP
PHP Error与Logging函数的深入理解
2013/06/03 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
PHP高精确度运算BC函数库实例详解
2017/08/15 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
javascript中局部变量和全局变量的区别详解
2015/02/27 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
2015/12/02 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
[04:59]DOTA2-DPC中国联赛 正赛 Ehome vs iG 选手采访
2021/03/11 DOTA
python django 访问静态文件出现404或500错误
2017/01/20 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
Python3实现购物车功能
2018/04/18 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
Linux下多个Python版本安装教程
2018/08/15 Python
virtualenv 指定 python 解释器的版本方法
2018/10/25 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
python中entry用法讲解
2020/12/04 Python
纯css3制作的火影忍者写轮眼开眼至轮回眼及进化过程实例
2014/11/11 HTML / CSS
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
平安建设工作方案
2014/06/02 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
思想工作总结范文
2015/08/12 职场文书
Mysql 用户权限管理实现
2021/05/25 MySQL
MySQL修改默认引擎和字符集详情
2021/09/25 MySQL