php - 如何处理whois数据

标签 php mysql xml whois

我需要将 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/

相关文章:

php - 如何处理不是 "real"依赖项的依赖项?

php - 我的 "if"语句返回 false 即使它是 true,为什么?

php - 将月、年转换为 YYYY-MM-DD

xml - 如何在 C# 中删除 XML 文档中的空格

sql-server - XPath 从 sql 表列中读取值

android - AutoLink 不会将电子邮件识别为电子邮件

php - WordPress - 按用户角色获取帖子,将两个查询合并为一个

mysql - 想要从 2 个不同的表中获取 2 个不同列的总和并想要显示最终总和

MySql 没有为少数查询选择正确的索引

php - 上传大文件(视频/mp4)的设置?