从Nutch插件中获取IP地址

时间:2016-06-16 09:13:07

标签: java nutch

我正在开展一个项目,我们正在抓取并索引多个网站。为此我使用的是Apache Nutch 2.3。现在我们还想索引服务器的IP地址。在搜索文档后,我得出结论,Nutch似乎无法开箱即用。出于这个原因,我现在正在尝试编写一个实现此功能的插件。

我遇到的问题是我无法从插件中获取IP地址。对于我的测试,我写了以下代码:

@Override
public NutchDocument filter(NutchDocument doc, String url, WebPage page) throws IndexingException {
    ByteBuffer ip = page.getMetadata().get("_ip_");
    System.out.println("IP address is " + Bytes.toString(ip));

我希望Nutch打印服务器的IP地址,但IP地址始终为空。有谁知道如何从插件中获取服务器IP地址?

一些注意事项:

  • 有一个名为“store.ip.address”的设置。我把它设置为true,但没有区别。
  • 在主存储库中,可以使用geoip插件,它以类似的方式获取IP地址。所以我认为它应该是可能的,尽管它是Nutch的另一个版本。
  • 我宁愿不修改Nutch本身的来源。

2 个答案:

答案 0 :(得分:0)

最终我通过在nutch-site.xml配置文件中进行两处更改找到了解决方案:

  • 使用protocol-http而不是protocol-httpclient
  • 将httpclient store.ip.address设置为true

答案 1 :(得分:0)

  

尝试这个,如果它可以帮助..

<script type="text/javascript" src="http://l2.io/ip.js?var=myip"></script>
<script type="text/javascript">
alert(myip);
</script>