在 Java 中使用 Apache Common 的 WhoisClient

2024-03-25

我正在尝试使用 WhoisClient 对象进行 WHOIS 查询,但效果不佳。我的代码非常简单:

String WHOIS_SERVER = WhoisClient.DEFAULT_HOST;
int WHOIS_PORT = 43;
String hostName = "www.google.com";

WhoisClient whoisClient = new WhoisClient();
try
  {
  whoisClient.connect(WHOIS_SERVER, WHOIS_PORT);
  String results = whoisClient.query(hostName);

  return results;
  }
catch(IOException e)
  {
....            
  }

所以有些事情是错误的。我获取了注册商信息,但没有获取所有者信息。此外,还有大量有关其他 TLD 中的 Google 域的信息,而不仅仅是 google.com。

我很确定我没有正确指定主机来获得我想要的东西。文档说:

程序员需要熟悉 whois 服务器的句柄语法。

不确定那是什么意思。我怎样才能做得更好?


不完全确定您到底想要返回什么,但从某些 Web 客户端运行 whois 查询返回的数据略有不同。维基百科页面 http://en.wikipedia.org/wiki/Whois有一些信息。 因此,我更改了以下行,并从使用默认主机名中得到了一些不同的结果。

whoisClient.connect("whois.iana.org", WHOIS_PORT);  // changed host name

Results:
% IANA WHOIS 服务器 % 有关 IANA 的更多信息,请访问http://www.iana.org http://www.iana.org% 该查询返回 1 个对象

refer:        whois.verisign-grs.com

domain:       COM

organisation: VeriSign Global Registry Services
address:      12061 Bluemont Way
address:      Reston Virginia 20190
address:      United States

contact:      administrative
name:         Registry Customer Service
organisation: VeriSign Global Registry Services
address:      12061 Bluemont Way
address:      Reston Virginia 20190
address:      United States
phone:        +1 703 925-6999
fax-no:       +1 703 948 3978
e-mail:       [email protected] /cdn-cgi/l/email-protection

contact:      technical
name:         Registry Customer Service
organisation: VeriSign Global Registry Services
address:      12061 Bluemont Way
address:      Reston Virginia 20190
address:      United States
phone:        +1 703 925-6999
fax-no:       +1 703 948 3978
e-mail:       [email protected] /cdn-cgi/l/email-protection

nserver:      A.GTLD-SERVERS.NET 192.5.6.30 2001:503:a83e:0:0:0:2:30
nserver:      B.GTLD-SERVERS.NET 192.33.14.30 2001:503:231d:0:0:0:2:30
nserver:      C.GTLD-SERVERS.NET 192.26.92.30
nserver:      D.GTLD-SERVERS.NET 192.31.80.30
nserver:      E.GTLD-SERVERS.NET 192.12.94.30
nserver:      F.GTLD-SERVERS.NET 192.35.51.30
nserver:      G.GTLD-SERVERS.NET 192.42.93.30
nserver:      H.GTLD-SERVERS.NET 192.54.112.30
nserver:      I.GTLD-SERVERS.NET 192.43.172.30
nserver:      J.GTLD-SERVERS.NET 192.48.79.30
nserver:      K.GTLD-SERVERS.NET 192.52.178.30
nserver:      L.GTLD-SERVERS.NET 192.41.162.30
nserver:      M.GTLD-SERVERS.NET 192.55.83.30
ds-rdata:     30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CFC41A5766

whois:        whois.verisign-grs.com

status:       ACTIVE
remarks:      Registration information: http://www.verisign-grs.com

created:      1985-01-01
changed:      2012-02-15
source:       IANA
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java 中使用 Apache Common 的 WhoisClient 的相关文章

随机推荐

  • 如何在 Jetpack Compose 中监听生命周期

    我正在使用 Jetpack Compose 创建一个应用程序 该应用程序在后台进行一些网络搜索 如果用户决定按后退按钮 我想取消搜索 所以我用了DisposableEffect Composable fun SecondScreen val
  • 操作栏上没有显示操作按钮? [复制]

    这个问题在这里已经有答案了 我正在关注以下教程开发者 android com http developer android com并尝试在操作栏上添加项目 尽管我添加了所有代码 但搜索操作显示为溢出元素而不是操作按钮元素 我尝试了带有软键盘
  • 从 MySQL 中选择随机行(有概率)

    我有一个 MySQL 表 其中有一行名为 cur odds 它是一个百分比数字 表示该行被选中的百分比概率 例如 当您运行 100 个查询时 如何进行查询以大约该频率实际选择行 我尝试了以下操作 但概率为 0 35 的行最终在大约 60 7
  • 在 cordova/on android 应用程序中,使用 https 的请求失败,但使用 http 的相同请求成功

    我有一个可以通过两个端口访问的后端服务器 一个使用 HTTP 另一个使用 HTTPS 它使用自签名证书 从我的 ionic cordova 混合应用程序中 当我使用 HTTP 请求运行时 它们都成功了 在第一次请求期间 我还添加了基本授权
  • jquery mobile在手机间隙中实现方向改变事件

    有人可以让我知道手机间隙中 jquery mobile 方向改变事件的正确代码吗 我在哪里以及如何实现这个orientationChange函数 window bind orientationchange orientationHandle
  • Python Selenium(等待帧、元素查找)

    我有这些包括 from selenium import webdriver from selenium common exceptions import NoSuchElementException from selenium webdri
  • Python-替换 CSV 文件中的行值

    我有这个数据集 XXXX XXXX 0 XXXX XXXX 0 XXXX XXXX 0 XXXX XXXX 0 XXXX XXXX 0 XXXX XXXX 0 XXXX XXXX 0 XXXX XXXX 0 基本上我想在每次运行程序后将第二
  • Rails 3.0.9 + Devise + Cucumber + Capybara 臭名昭著的“没有路线匹配 /users/sign_out”

    我正在使用 devise 1 4 2 和 Rails 3 0 9 cucumber rails 1 0 2 capybara 1 0 0 我有No route matches users sign out 当我点击注销时出现错误 我添加了
  • 为什么 git stash pop 说它无法从存储条目恢复未跟踪的文件?

    我有很多分阶段和未分阶段的更改 我想快速切换到另一个分支 然后再切换回来 所以我使用以下方法进行了更改 git stash push a 事后看来我可能可以使用 include untracked代替 all 然后 当我去弹出存储时 我收到
  • 子表单根据主表单的ID新建记录

    首先我想说 我是 Access 的初学者 我将感谢我能得到的每一点帮助 我创建了一个表单 显示一个带有三个子表单的表中的记录 记录和子表单具有一对多的关系 我现在正在为每个子表单创建按钮 以便在子表单中创建新记录 我已成功制作按钮并使用宏生
  • 为什么在函数堆栈上返回值不安全

    我在阅读 bruce eckel 时遇到了以下段落 他试图解释为什么函数在堆栈上返回值不安全 现在想象一下如果一个普通函数尝试在堆栈上返回值会发生什么您不能触及返回地址上方堆栈的任何部分 因此该函数必须将值推入返回地址下方 但是当执行汇编语
  • EF核心中的持久数据层,动态EF。将 EF 与模型分开

    我想将 EF 层与我的模型分开 我需要一个 EF Builder 将我的模型发送给它 如下所示 我找到了 mongodb 的代码 但我需要 EF core builder AddMongo builder AddMongoRepositor
  • awk 或 sed CSV 文件操作

    a004 1b North at006754 a004 1c south atytgh0 a004 1d east atrthh a010 1a midwest atyu a010 1b south rfg67 我想打印第一列和第二列 没有
  • 使用 grunt 构建的 Angular 应用程序中缺少资产

    我使用 Yeoman 和 AngularJS 以及所有与之相关的东西 如 Grunt 和 Bower 构建了一个应用程序 当使用本地运行时 一切都完美运行grunt serve 然而 在运行 grunt 并部署应用程序后 有一些丢失的资产
  • 嵌入式 MongoDB 文档在使用 C# 驱动程序保存时未获取 ID

    当我有一个包含文档列表的根文档并且我保存 插入时 根文档总是从 MongoDB 获取 ID 但列表中的文档不会 它们与ObjectId Empty 我不确定我是否做错了什么或者这是否是有意的行为 这是我正在尝试做的事情的一个例子 鉴于课程
  • TSQL 使触发器静默失败

    我在插入后触发器中有一些代码可能会失败 这样的失败并不重要 应该not回滚事务 如何捕获触发器内的错误并让事务的其余部分正常执行 下面的例子说明了我的意思 触发器故意创建一个错误条件 结果是原始插入 1 永远不会插入到表中 Try Catc
  • Bundler 抛出没有这样的文件或目录进行 gem 安装

    在 Gemfile 中 gem backup git gt git github com tenmiles backup git ref gt develop n 本地和分阶段 bundle install确实成功完成了 在生产中 当bun
  • Swift 3:如何捏合缩放和旋转 UIImageView?

    我真的很难在网上找到教程以及已经回答的问题 我已经尝试过它们 但它们似乎不起作用 我的视图中心有一个 UIImageView 我目前可以点击并将其拖动到屏幕上任何我想要的位置 我希望能够通过捏合来缩放和旋转此视图 我该如何实现这一目标 我已
  • TrafficStats 函数始终返回 -1

    当我尝试使用 TrafficStats 类检索流量数据时 TrafficStats getTotalRxBytes and TrafficStats getTotalTxBytes 即使我使用浏览器加载某些网页 函数也总是返回 1 我从一些
  • 在 Java 中使用 Apache Common 的 WhoisClient

    我正在尝试使用 WhoisClient 对象进行 WHOIS 查询 但效果不佳 我的代码非常简单 String WHOIS SERVER WhoisClient DEFAULT HOST int WHOIS PORT 43 String h