【问题标题】:Is the following IP-Range 100.64.0.0/10 reserved?以下 IP-Range 100.64.0.0/10 是否保留?
【发布时间】:2018-12-03 08:27:44
【问题描述】:

我要检查一个 IP 地址是私有的还是保留的(例如多播地址空间)。

我的 Methode 目前看起来像这样:

def __IP4_POR(ip):

if(ipaddress.ip_address(ip).is_private or 
   ipaddress.ip_address(ip).is_reserved or 
   ipaddress.ip_address(ip).is_multicast): return str(1)
else: return str(0);

所以问题是如果 IP 在 100.64.0.0/10 范围内,python 编译器将返回 0。

问题是:为什么编译器返回一个 0?因为当我查看 IANA IPv4 专用地址注册表时,我看到 IP 地址必须根据 RFC6598 IETF 保留,并且编译器应该返回 1 而不是 0。

这可能是 python 库中的错误吗?

希望你能帮我解释一下。

谢谢!

编辑:我使用的是 Python 3.6.5

【问题讨论】:

  • 你为什么返回字符串而不是布尔值 TrueFalse
  • 因为其他方法正在处理字符串 :'D 但这不是目前的主要问题^^
  • 你应该把它修好,然后去掉分号,它不漂亮。
  • 是的,但代码优化是我列表中的最后一点。目前我需要“保留”方法的功能。但是谢谢你的积分! :)

标签: python python-3.x python-2.7 ip ip-address


【解决方案1】:

从 ipaddress 模块,100.64.0.0/10 未被保留。只有 240.0.0.0/4 是保留的 ip 地址。

【讨论】:

    猜你喜欢
    • 2019-10-31
    • 2021-05-31
    • 2022-11-10
    • 2018-12-15
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    相关资源
    最近更新 更多