我需要将 whois 数据放在一个表中,例如
- 注册人,
- 创建日期,
- 到期日等
我有从 whois 服务器中提取数据的脚本,但每个域扩展的输出都不同。
例如,对于 .com
域,注册人详细信息以总地址的形式出现,对于 .org
域,它以注册人姓名、street1、street2、street3 等形式出现。
所以我无法将注册人详细信息作为一个单元提取到数据库中。
有些地方我听说如果我们得到 xml 数据我们就可以提取它,有人可以帮助解决这个问题吗?谢谢!
最佳答案
实际上问题远不止于此。
- 没有统一的请求语法
- 也没有定义能力集
- 没有明确的答案方案
- 地方立法使内容不同
- 没有标准化错误集
- 记录的信息质量较差
- 你必须处理内化问题
WHOIS 服务由 RFC3912 定义。这是一个非常基本的请求协议(protocol),根本没有定义回答内容的格式。所以答案通常反射(reflect)了包含数据的数据库的格式,并且您可能会为每个数据库获得不同的语法。由于 WHOIS 可用于您想要的任何内容,因此您不能对您将获得的答案的格式做出很多假设。但是,希望您能收到可解析的内容,以及每个请求的类似格式的答案。
因此您需要为每个服务器开发一个解析逻辑,您必须以非常有经验的方式来做。
不过这里有一些来自 RFC 的开发技巧。
您需要使用 TCP 端口 43 发送请求,单行以 CR+LF ASCII 字符结尾
您必须期待 TCP 连接结束,因为这意味着答案已经完成。
具体关于域名,您可能想要注意以前对 ASCII 编码的限制使一些注册人使用 Punycode 对 DNS 系统中的一些(通过示例强调)字符串进行编码,因此您可能希望能够在如果您在某些回复中遇到,也会有一个 Whois 答案。自 2003 年以来国际化域名的存在将要求您支持 unicode 编码。转换名称的算法很复杂,RFC 3490 应该会为您提供一些有用的详细信息。
祝你好运!
关于php - 如何处理whois数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5910844/