检查域、IP和主机以确保它们是“外部的”

check-external-net的Python项目详细描述


检查域、IP和主机以确保它们是“外部的”

它用于检查用户输入的主机名,以确保 它们只包含IP地址或被认为是 系统外部的。没有保留的IP地址(例如 127.0.0.0/8192.168.0.0/16fc00::/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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java jSplitPane鼠标悬停时显示和隐藏左窗格   替换nio。文件java 8的路径::of(字符串)   java Jetty连接器和处理程序   无法实例化java RxJava网络   加密如何使Java程序对文本文档中的消息进行解密?   java可以在OSGi环境中实现   javascript在GWT中捕获JS触发的自定义事件   Cassandra跟踪和客户端延迟之间的java差异   java简单Xml元素声明两次错误   Mac和PC之间的java NetBeans   java Selenium Chrome驱动程序和Travis CI不能一起工作   从Java web应用程序管理Linux用户身份验证和文件系统权限   java调用setVisible(false)和dispose()时,为什么窗口/组件侦听器的调用方式不同?