检查域、IP和主机以确保它们是“外部的”
check-external-net的Python项目详细描述
检查域、IP和主机以确保它们是“外部的”
它用于检查用户输入的主机名,以确保 它们只包含IP地址或被认为是 系统外部的。没有保留的IP地址(例如 127.0.0.0/8,192.168.0.0/16,fc00::/7)并且没有不是的域 公共后缀的子级(例如*.com可以,*.local不可以)。
内部IP地址(is_external_address)
如果我们能够识别出一个IPv4 mapped地址,那么它是通过 作为核对地址而不是原件。
从那里,所有的IPv4 reserved networks,和IPv6 reserved networks 视为“内部”(见is_global)
内部域(is_external_domain)
如果域不是外部的,则它被视为内部的。
如果域的最后一个后缀(域的最后一部分)被认为是外部的 在最后一个{t88}$字符之后存在 Mozilla public suffix registry。
内部主机(is_external_host)
主机通过ipaddress.ip_address函数解析为IP地址。如果 这是成功的,它被视为一个内部IP地址的规则。否则, 它被视为一个域。
用法
>>> check_external_net.is_external_host('127.0.0.1') False >>> check_external_net.is_external_host('::0') False >>> check_external_net.is_external_host('8.8.8.8') True >>> check_external_net.is_external_host('::ffff:8.8.8.8') True >>> check_external_net.is_external_host('localhost') False >>> check_external_net.is_external_host('cluster.local') False >>> check_external_net.is_external_host('google.com') True >>> check_external_net.is_external_host('dutyof.care') True