我正在尝试使用Scapy找到路由器的IP地址。
我正在运行Linux发行版并完全理解我可以使用系统调用或子进程来访问路由表并找到网关。但是,我试图在没有系统调用的情况下这样做。
我想有一种方法可以用Scapy做到这一点,有人知道吗?
答案 0 :(得分:2)
FTR,请参见https://scapy.readthedocs.io/en/latest/routing.html
获取路由器IP地址
>>> gw = conf.route.route("0.0.0.0")[2] >>> gw '10.0.0.1'
答案 1 :(得分:0)
我使用的知识是,如果我将数据包发送到ttl = 0的远程IP地址,我将从我通过的第一个路由器(我的默认网关)获得ICMP数据包,所有我需要做的以后从该数据包中获取IP
from scapy.all import *
p = sr1(IP(dst="www.slashdot.org", ttl = 0)/ICMP()/"XXXXXXXXXXX")
print p.src