![如何了解 IP 地址是动态的还是静态的?](https://linux22.com/image/584629/%E5%A6%82%E4%BD%95%E4%BA%86%E8%A7%A3%20IP%20%E5%9C%B0%E5%9D%80%E6%98%AF%E5%8A%A8%E6%80%81%E7%9A%84%E8%BF%98%E6%98%AF%E9%9D%99%E6%80%81%E7%9A%84%EF%BC%9F.png)
我有一个 IP 列表,我必须将它们分为静态和动态。有什么工具或方法可以做到这一点吗?谢谢任何建议...
答案1
tl;dr——不。
静态地址和动态地址之间的区别仅仅在于动态地址由 DHCP 服务器分配。就是这样。DHCP 服务器可以分配的 IP 地址范围完全是任意的,因此如果无法访问 DHCP 服务器的配置,就无法明确区分哪个是哪个。
根据 DHCP 服务器配置的租用期限,您可以通过查看其 ARP 映射是否随时间发生变化来推断有关某些 IP 的信息。
如果你谈论的是公共 IP,那么可能能够对 IP 进行反向 DNS 查找,如果存在 PTR 记录,则返回的主机名可能会为您提供有关它是静态地址还是动态地址的一些信息。
不过,我要重申一下,仅靠 IP 是无法获取您想要的信息的。
答案2
进行反向 ptr 命名分析并检查动态/拨入名称模式是一个很好的机会。这应该对互联网有帮助。http://www.debouncer.com/reverse-dns-check简要提到了这一点 - 大多数提供商对动态 IP 地址使用可识别的命名标准。http://www.linuxmagic.com/best_practices/check_dynamic_reverse_dns.html。这是非常不正式的,但您可以检查模式(动态、拨入)或显示反向 DNS 中部分 IP 地址的字符串(例如,对于 IP 8.9.0.2,8-9-0-2.ip.someexample.com 表明它至少来自一个分配了半动态分配的池。
如果不是这种情况 - 或者它是一个将反向条目设置为机器名称的 LAN......没办法。
IT 总是有错误裕度(例如,上面提到的 IP 可能来自动态池,但 DHCP 可能通过保留静态地分配它)。
最后,IP 地址并不是动态的。这就像问你是否可以通过查看电话号码来了解手机合同持有人的性别。动态 IP 地址没有什么不同 - 只是由计算机管理。
答案3
一般来说,您不能这样做。但如果您需要为您的服务设置一些安全设置(例如,禁用来自动态 IP 的邮件),您可以使用 dns-list dul.dnsbl.sorbs.net 进行反向检查 IP 如果 sorbs 在请求 IP.AD.DR.ES(ES.DR.AD.IP.dul.dnsbl.sorbs.net)时返回 nxdomain,则意味着 IP 地址未列为动态。