Python實現TCP探測目標服務路由軌跡的原理與方法詳解
阿新 • • 發佈:2020-01-09
本文例項講述了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程式設計有所幫助。