<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Tracert 命令跟蹤路由原理是IP路由每經過一個路由節點TTL值會減一,假設TTL值=0時封包還沒有到達目標主機,那麼該路由則會回覆給目標主機一個封包不可達,由此我們就可以獲取到目標主機的IP地址,如下我們通過scapy構造一個路由追蹤工具並實現一次追蹤。
首先Scapy是如何發包與收包的,看以下案例的演示。
>>> from random import randint >>> >>> RandomID=randint(1,65534) >>> packet = IP(dst="8.141.58.64", ttl=1, id=RandomID) / ICMP(id=RandomID, seq=RandomID) / "hello lyshark" >>> respon = sr1(packet,timeout=3,verbose=0) >>> >>> respon <IP version=4 ihl=5 tos=0xc0 len=61 id=14866 flags= frag=0 ttl=64 proto=icmp chksum=0xbc9a src=192.168.1.1 dst=192.168.1.2 |<ICMP type=time-exceeded code=ttl-zero-during-transit chksum=0xf4ff reserved=0 length=0 unused=None |<IPerror version=4 ihl=5 tos=0x0 len=33 id=49588 flags= frag=0 ttl=1 proto=icmp chksum=0x4f79 src=192.168.1.2 dst=61.135.169.125 |<ICMPerror type=echo-request code=0 chksum=0x30c4 id=0xc1b4 seq=0xc1b4 |<Raw load='hello lyshark' |>>>>>
路由追蹤原理(參考於網際網路):一開始傳送一個TTL為1的包,這樣到達第一個路由器的時候就已經超時了,第一個路由器就發ICMP通知說包超時,這樣就能夠記錄下所經過的第一個路由器的IP。然後將TTL加1,安全通過第一個路由器,而第二個路由器的的處理與第一個同樣,丟包,發通知說包超時了,這樣記錄下第二個路 由器IP,由此能夠一直進行下去,直到這個封包到達目標主機,由此列印出全部經過的路由器。
將這個過程自動化,就可以完成封包的跟蹤,Python 程式碼如下所示
from scapy.all import * from random import randint import time,ipaddress,threading from optparse import OptionParser def ICMP_Ping(addr): RandomID=randint(1,65534) packet = IP(dst=addr, ttl=64, id=RandomID) / ICMP(id=RandomID, seq=RandomID) / "lyshark" respon = sr1(packet,timeout=3,verbose=0) if respon: print("[+] --> {}".format(str(respon[IP].src))) # By: LyShark.com def TraceRouteTTL(addr): for item in range(1,128): RandomID=randint(1,65534) packet = IP(dst=addr, ttl=item, id=RandomID) / ICMP(id=RandomID, seq=RandomID) respon = sr1(packet,timeout=3,verbose=0) if respon != None: ip_src = str(respon[IP].src) if ip_src != addr: print("[+] --> {}".format(str(respon[IP].src))) else: print("[+] --> {}".format(str(respon[IP].src))) return 1 else: print("[-] --> TimeOut") time.sleep(1) def Banner(): print(" _ ____ _ _ ") print(" | | _ _/ ___|| |__ __ _ _ __| | __") print(" | | | | | ___ | '_ / _` | '__| |/ /") print(" | |__| |_| |___) | | | | (_| | | | < ") print(" |_______, |____/|_| |_|__,_|_| |_|_\") print(" |___/ n") print("E-Mail: me@lyshark.com") if __name__== "__main__": Banner() parser = OptionParser() parser.add_option("--mode",dest="mode",help="選擇使用的工具模式<ping/trace>") parser.add_option("-a","--addr",dest="addr",help="指定一個IP地址或範圍") (options,args) = parser.parse_args() print("By: LyShark.com") # 使用方式: lyshark.py --mode=ping -a 192.168.1.0/24 if options.mode == "ping": net = ipaddress.ip_network(str(options.addr)) for item in net: t = threading.Thread(target=ICMP_Ping,args=(str(item),)) t.start() # 使用方式: lyshark.py --mode=trace -a 8.141.58.64 elif options.mode == "trace": TraceRouteTTL(str(options.addr)) else: parser.print_help()
追蹤探測效果如下:
到此這篇關於Python實現Tracert追蹤TTL值的方法詳解的文章就介紹到這了,更多相關Python Tracert追蹤TTL值內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45