用 pcap_sendpacket 时别开 IP Forwarding

至少在我 Windows 7 下是这样的,用 pcap_sendpacket() 时别开系统的 IP forwarding 功能。
否则的话.. 包不会直接被送出去,而是会被系统路由一次再发。发生这种情况时,发送一个包,在本机会抓到两个包:前者没问题;后者 TTL 减一,源 MAC 和 目的 MAC 可能会被修改。但只有后一个包会被送出本机。

IP forwarding 默认是关闭的,修改注册表项HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter开启或关闭。启用后系统就成了个路由器,会根据路由表转发目标IP不是自己的包。我也忘了当时为什么开启来了。

不知道这是个例还是 WinPcap 的 bug ,别告诉我这是个 feature 就行…

用 pcap_sendpacket 时别开 IP Forwarding》上有3条评论

所有评论已归档,无法添加新的评论。请直接邮件与我联系,谢谢。