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 相关文章推荐
python3.3实现乘法表示例
Feb 07 Python
python条件变量之生产者与消费者操作实例分析
Mar 22 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
浅谈机器学习需要的了解的十大算法
Dec 15 Python
十分钟利用Python制作属于你自己的个性logo
May 07 Python
Python字典中的键映射多个值的方法(列表或者集合)
Oct 17 Python
解决Python下json.loads()中文字符出错的问题
Dec 19 Python
超简单使用Python换脸实例
Mar 27 Python
Python3.5文件读与写操作经典实例详解
May 01 Python
利用Python库Scapy解析pcap文件的方法
Jul 23 Python
Python脚本调试工具安装过程
Jan 11 Python
python实现web邮箱扫描的示例(附源码)
Mar 30 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
PHPlet在Windows下的安装
2006/10/09 PHP
php循环输出数据库内容的代码
2008/05/24 PHP
PHP 编程的 5个良好习惯
2009/02/20 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
2013/06/23 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
2016/03/23 PHP
关于php中一些字符串总结
2016/05/05 PHP
javascript知识点收藏
2007/02/22 Javascript
js 操作符实例代码
2009/10/24 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
javascript日期格式化方法汇总
2015/10/04 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
BootStrap Datetimepicker 汉化的实现代码
2017/02/10 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
利用python模拟实现POST请求提交图片的方法
2017/07/25 Python
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
使用python实现简单五子棋游戏
2019/06/18 Python
Django 自定义权限管理系统详解(通过中间件认证)
2020/03/11 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
函授大专自我鉴定
2013/11/01 职场文书
测试工程师岗位职责
2013/11/28 职场文书
新闻编辑求职信
2014/04/09 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
大学生标准自荐书
2014/06/15 职场文书
演讲开场白和结束语
2015/05/29 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
Golang并发工具Singleflight
2022/05/06 Golang