Python实现TCP探测目标服务路由轨迹的原理与方法详解

yipeiwu_com6年前Python基础

本文实例讲述了Python实现TCP探测目标服务路由轨迹的原理与方法。分享给大家供大家参考,具体如下:

一 点睛

在此次实践中,通过scapy的traceroute()方法实现探测机到目标服务器的路由轨迹,整个过程的原理见下图,首先通过探测机以SYN方式进行TCP服务扫描,同时启动tcpdump进行抓包,捕获扫描过程经过的所有路由点,再通过graph()方法进行路由IP轨迹绘制,中间调用ASN映射查询IP地理信息并生成svg流程文档,最后使用ImageMagick工 具将svg格式转换成png,流程结束。

二 代码

# -*- 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"

三 结果

四 参考

https://github.com/secdev/scapy/issues/1480

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

python 调用c语言函数的方法

虽然python是万能的,但是对于某些特殊功能,需要c语言才能完成。这样,就需要用python来调用c的代码了 具体流程: c编写相关函数 ,编译成库 然后在python中加载这些...

使用Protocol Buffers的C语言拓展提速Python程序的示例

 Protocol Buffers (类似XML的一种数据描述语言)最新版本2.3里,protoc—py_out命令只生成原生的Python代码。 尽管PB(Protocol...

修改Python的pyxmpp2中的主循环使其提高性能

引子 之前clubot使用的pyxmpp2的默认mainloop也就是一个poll的主循环,但是clubot上线后资源占用非常厉害,使用strace跟踪发现clubot在不停的poll,...

Window10+Python3.5安装opencv的教程推荐

Window10+Python3.5安装opencv的教程推荐

1.确定Python版本,电脑64位或者32位 打开cmd(window键+R,输入cmd就出现),在命令行输入:打开cmd(window键+R,输入cmd就出现),在命令行输入:pyt...

python实现隐马尔科夫模型HMM

一份完全按照李航<<统计学习方法>>介绍的HMM代码,供大家参考,具体内容如下 #coding=utf8 ''''' Created on 2017-8-...