1
如何查找路由表中的IP地址(檢索網絡接口索引和MAC)而不發送任何數據包?如何檢查目標IP地址屬於哪個路由(接口)而不發送任何內容?
如何查找路由表中的IP地址(檢索網絡接口索引和MAC)而不發送任何數據包?如何檢查目標IP地址屬於哪個路由(接口)而不發送任何內容?
您可以使用ip
命令:
# ip route get to 74.125.228.197
74.125.228.197 via 192.168.1.1 dev eth0 src 192.168.1.100
而且一旦你知道接口,你可以得到它的索引和鏈接/醚(MAC)地址:
# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 100
link/ether 88:00:00:00:f2:4c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
inet6 fe80::3039:34ff:fe2c:f24c/64 scope link
valid_lft forever preferred_lft forever
是否可以用簡單的做'ioctl'像SIOCADDRT(不調用外部二進制或使用'AF_NETLINK')? –
我從來沒有打擾過,但你可以通過查看它的[源代碼](http://git.kernel.org/cgit/linux/kernel/git/shemminger/iproute2.git/tree /ip/iproute.c) – Joe
我用'strace'看到它正在做一些AF_NETLINK魔術。 –