【发布时间】:2009-10-30 13:40:58
【问题描述】:
我正在尝试在目标 Windows 机器上查看传入 ping 的结果。这需要验证在后台线程中运行的 ping 是否是从发起方发送的。
我试过 netstat 无济于事。还有其他方法我可以尝试吗?
谢谢。
【问题讨论】:
我正在尝试在目标 Windows 机器上查看传入 ping 的结果。这需要验证在后台线程中运行的 ping 是否是从发起方发送的。
我试过 netstat 无济于事。还有其他方法我可以尝试吗?
谢谢。
【问题讨论】:
Ping 是一个 ICMP 数据包,不会创建 TCP 连接(因此您不会在 netstat 中看到它)。在 Linux 上,我会在防火墙中添加一条规则。
对于您的情况,最简单的解决方案可能是打开一个连接并关闭它。这会将其添加到 netstat 和 WAIT_CLOSE 的输出中。
【讨论】:
正如 Aaron Digulla 已经指出的,ping 是 ICMP。这也意味着发起者比 TCP 更不可信。没有 SYN/ACK 握手。您只需在主机上获得一个 IP 数据包,并且您必须信任标头字段。任何人都可以欺骗这些标头字段,几乎没有任何限制(通过路由器获取声称来自 127.0.0.1 的 IP 可能有点挑战)
因此,ICMP 不适合验证任务。您需要一个质询/响应协议。只要您可以信任网络但不一定信任网络上的所有主机,TCP 就可以正常工作(互联网的合理假设。对于金融交易来说不够强大,这就是他们使用 SSL 的原因)
【讨论】: