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基础教程之分支、循环简单用法
Jun 16 Python
Pycharm学习教程(7)虚拟机VM的配置教程
May 04 Python
Python中一行和多行import模块问题
Apr 01 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
Python实现的微信红包提醒功能示例
Aug 22 Python
Python 自动登录淘宝并保存登录信息的方法
Sep 04 Python
tensorflow查看ckpt各节点名称实例
Jan 21 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
Mar 30 Python
python实现人性化显示金额数字实例详解
Sep 25 Python
python mongo 向数据中的数组类型新增数据操作
Dec 05 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
Feb 02 Python
Golang Web 框架Iris安装部署
Aug 14 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 开发工具
2006/12/06 PHP
php使用imagecopymerge()函数创建半透明水印
2018/01/25 PHP
对JavaScript的eval()中使用函数的进一步讨论
2008/07/26 Javascript
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
2014/06/23 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
Google 爬虫如何抓取 JavaScript 的内容
2017/04/07 Javascript
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
2018/02/24 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
vue数据响应式原理知识点总结
2020/02/16 Javascript
在Python中移动目录结构的方法
2016/01/31 Python
Python实现的维尼吉亚密码算法示例
2018/04/12 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
python判断一个对象是否可迭代的例子
2019/07/22 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
Python中的单下划线和双下划线使用场景详解
2019/09/09 Python
Python切图九宫格的实现方法
2019/10/10 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
P D PAOLA法国官网:西班牙著名的珠宝首饰品牌
2020/02/15 全球购物
职业生涯规划书基本格式
2014/01/06 职场文书
怎样填写就业意向
2014/04/02 职场文书
大学生求职信怎么写
2015/03/19 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
CSS3 制作的彩虹按钮样式
2021/04/11 HTML / CSS
python实现学员管理系统(面向对象版)
2022/06/05 Python