您将如何探测 TCP/UDP 上的前几个端口以查看主机是否处于活动状态(如 Angryipscanner,但仅限于 ipv6)?在没有 ICMPv6 的情况下查看主机是否处于活动状态?我在 Windows 上。
答案1
从技术上讲,主机可以“活着”(定义活着?)而无需回复 ICMP ping 请求。例如,您可以在防火墙中阻止 ICMPv4 和 ICMPv6 流量(有选择地,仍然允许 PMTU 发现等关键内容),而不会产生任何不利影响。
TCP 连接尝试也一样。如果您尝试连接到随机端口,可能会得到 3 种不同的结果:
连接成功。主机处于活动状态。
连接被拒绝。主机处于活动状态。
连接超时。主机处于离线状态,或阻止该端口上的连接尝试,或由于其他网络问题导致连接失败。
你如何区分#3 中的三种不同可能性?
通过 TCP 或 UDP 进行“ping”的方法
你可以“强制”traceroute通过TCP或UDP进行“ping”:
traceroute -6 -f 30 -T ipv6.google.com
跟踪路由到 ipv6.google.com (2001:4860:8005::69),最多 30 跳,80 字节数据包
30 pz-in-x69.1e100.net (2001:4860:8005::69) 87.299 毫秒 87.257 毫秒 87.208 毫秒
相同的请求,仅通过 UDP 将会失败:
traceroute -6 -f 30 -U ipv6.google.com
跟踪路由到 ipv6.google.com (2001:4860:8005::63),最多 30 个跳数,80 字节数据包
30 * * *
如果脚本中需要此功能,则只需要将结果通过管道传输到 grep。