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中的复制操作及copy模块中的浅拷贝与深拷贝方法
Jul 02 Python
Python yield 使用方法浅析
May 20 Python
基于Django的ModelForm组件(详解)
Dec 07 Python
用Django写天气预报查询网站
Oct 21 Python
python操作日志的封装方法(两种方法)
May 23 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
python实现beta分布概率密度函数的方法
Jul 08 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
Aug 12 Python
Python 类的私有属性和私有方法实例分析
Sep 29 Python
Python函数的定义方式与函数参数问题实例分析
Dec 26 Python
详解Django中异步任务之django-celery
Nov 05 Python
Python创建自己的加密货币的示例
Mar 01 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 mysql Errcode: 28 终极解决方法
2009/07/01 PHP
php 读取文件乱码问题
2010/02/20 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
PHP面向对象程序设计之接口用法
2014/08/20 PHP
thinkPHP框架实现的短信接口验证码功能示例
2018/06/20 PHP
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
下拉列表select 由左边框移动到右边示例
2013/12/04 Javascript
JavaScript前补零操作实例
2015/03/11 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
轻松掌握JavaScript中的Math object数学对象
2016/05/26 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
2016/11/09 Javascript
JavaScript正则表达式的贪婪匹配和非贪婪匹配
2017/09/05 Javascript
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
2019/04/01 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
vue弹出框组件封装实例代码
2019/10/31 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
JavaScript 获取滚动条位置并将页面滑动到锚点
2021/02/08 Javascript
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
python3新特性函数注释Function Annotations用法分析
2016/07/28 Python
详解python3中zipfile模块用法
2018/06/18 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
python使用PyQt5的简单方法
2019/02/27 Python
Python如何使用OS模块调用cmd
2020/02/27 Python
pyspark 随机森林的实现
2020/04/24 Python
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
迟到检讨书400字
2014/01/13 职场文书
服务员自我评价
2014/01/25 职场文书
员工培训邀请函
2014/02/02 职场文书
电子信息工程专业推荐信
2014/02/14 职场文书
继承公证书
2014/04/09 职场文书
暑假社会实践心得体会
2014/09/02 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
Mysql 用户权限管理实现
2021/05/25 MySQL
Mysql 设置boolean类型的操作
2021/06/04 MySQL