用于检索和分析域的whois数据的模块。支持大多数域。没有依赖关系。
pythonwhois-alt的Python项目详细描述
蟒蛇alt
这是一个强大的叉子 sven slootweg的pythonwhois 不幸的是,图书馆似乎被遗弃了。我的变更日志是 这里
安装时使用:
pip install pythonwhois-alt
下面是原始描述。
蟒蛇
一个用于python的whois检索和解析库。
依赖关系
没有!您所需要的只是python标准库。说明
手册(包括安装说明)可以在doc/目录中找到。HTML版本也可以在这里查看。
目标
- 100%覆盖whois格式。
- 准确完整的数据。
- 始终如一的功能分析;不断的测试以确保分析器不会意外损坏。
功能
- whois数据检索
- 能够跟踪whois服务器重定向
- 不会被来自verisign grs的多个结果响应所困扰
- whois数据解析
- 基本信息(注册等)
- 日期/时间(注册、到期等)
- 完整的注册人信息(!)
- 名称服务器
- 可选的whois数据规范化
- 尝试智能地重新格式化whois数据,以获得更好的(人工)可读性
- 将各种缩写类型转换为完整的地区名称
- 机场代码
- 国家名称(2个和3个字母的ISO代码)
- 美国各州和地区
- 加拿大各州和地区
- 澳大利亚各州
- pwhois,一个使用pythonwhois的简单whois工具
- 易于阅读的输出格式
- 也可以输出原始的whois数据
以及json。
- 将检测并警告与以前的运行相比分析数据中的任何更改
- 保证以前工作的whois解析不会在更改代码时无意中断
IP范围whois
pythonwhois
还不支持whois对ip范围(包括单个ip)的查找,不过这将在将来的某个时候添加。同时,考虑使用ipwhois
-它提供类似于pythonwhois
的功能和api,但仅限于ips。它还支持委派的rwhois。
请注意,ipwhois
不提供规范化功能,而且(还)没有命令行工具。另外,ipwhois
由philip hane维护,而不是由我维护;请确保在ipwhois
存储库中,而不是在pythonwhois
存储库中,提交与之相关的错误。
重要更新说明
2.4.0和up:对规范化做了很多更改,python 2.x下的性能得到了显著提高。python 2.7下的平均解析时间减少了94%(!),在我的系统上平均为18ms。python 3.x下的性能是不变的。pythonwhis
现在将在规范化模式下扩展许多缩写,如机场代码、ISO国家代码和US/CA/AU州缩写。这样做的结果是,这个库现在更大了(因为它提供了这些缩写的列表)。还要注意的是,可能会产生许可后果,特别是关于机场代码数据库。有关这方面的更多信息,请参见下文。
2.3.0及以上版本:python 3支持已修复。已修复联系人的创建日期解析;如果应用程序依赖于损坏的vari,则现在将返回正确的时间戳,而不是未格式化的时间戳。蚂蚁,你需要修改你的代码。在net
和parse
方法中添加了一些附加参数,以方便nic句柄查找;默认值是向后兼容的,这些更改不会对代码产生任何影响。Thai whois解析已实现,但有点不稳定-有时可能会错误地拆分数据。如果遇到任何问题,请提交错误报告。
2.2.0和up:已更改了get-whois-raw
的内部工作方式,以便更好地解析来自注册表的whois数据,这些注册表可能返回多个查询部分匹配项,例如whois.verisign grs.com
。此更改意味着,默认情况下,get_whois_raw
将删除此类响应中与请求域不直接相关的部分。如果您的应用程序需要未经修改的raw whois响应,并且正在直接调用getwhois\uraw
,则应该使用新的never\u cut
参数来阻止pythonwhois执行此后处理。由于这是一个潜在的破坏性行为更改,次要版本已被取消。
它不起作用!
- 一点用都没有?
- 它不解析特定域的数据?
- 在解析一个域的数据时会有不准确的地方,哪怕只是一个很小的域?
如果其中任何一个适用,不要犹豫提出一个问题!目标是100%覆盖,我们需要您的反馈来实现这一目标。
许可证
此库可以在wtfpl下使用,如果您对此有异议,请将其视为在cc0下使用。
数据源
此库使用许多第三方数据集进行规范化:
airports.dat
:OpenFlights机场数据库数据库内容许可证1.0)countries.dat
:国家列表(麻省理工学院许可证)countries3.dat
:ISO国家列表(未指定许可证)状态数据:
蟒蛇的一部分
(wtfpl/cc0)states\u us.dat
:状态表(未指定许可证,鼓励免费重用)状态ca.dat
:状态表(未指定许可证,鼓励自由重用)
请注意,openflights数据库尤其具有潜在的许可后果;如果您不希望受到这些潜在后果的约束,您只需从您的发行版中删除airports.dat
文件。pythonwhis
将假定没有可用的数据库,并且不会执行机场代码转换(但仍然正常工作,否则)。这也适用于其他包含的数据集。
贡献
请随意分叉并提交拉取请求(到development
分支)!如果更改了任何解析或规范化逻辑,请确保在打开拉取请求之前运行完整的测试套件。相关说明如下。
请注意,此项目使用制表符缩进。
所有命令都与存储库的根目录相关。
不包含test.py输出的拉取请求将被拒绝!
向测试集中添加新的whois数据
pwhois --raw thedomain.com > test/data/thedomain.com
检查当前分析的数据(在编辑解析器时)
./pwhois -f test/data/thedomain.com/ .
(别忘了结尾的那个点!)
将当前分析的数据标记为域的正确数据
确保进行验证(使用PWHOISde>或其他)在将域的whois数据标记为正确之前,正在正确解析它!
./test.py update thedomain.com
运行所有测试
./test.py run all
测试特定域
./test.py run thedomain.com
运行完整的测试套件,包括对多个python版本的支持
tox
生成文档
您需要zippydoc(可通过pip install zippydoc
安装)。
zpy2html doc/*.zpy