检查域、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在jframe中模糊的背景上创建一个透明的矩形   java和super之间有区别。getX()和简单的x?   使用ant的java删除eclipse项目   java找不到。txt文件?   多线程Java wait()notify()   带按钮的java透明控件   java Android Studio 3无法构建我的项目   性能最佳(最快且节省内存)的Java收集/数据结构,可同时插入和删除项   spring+hibernate集成中的java ClassNotFoundException   java如何在Android上建立异步URL连接?   java当我选择contacts选项卡时,选项卡栏消失了   java根据数据库中的日期获取结果,不考虑时间   java如何访问WebChromeClient中的方法?   java如何在安卓中使用两行列表项?   spring Swagger Java日期格式验证引发异常