如何从多个IP地址获取主机名? Java的

时间:2016-09-07 05:03:51

标签: java networking

我现在正在学习Socket编程,当我想从多个IP地址获取主机名时遇到了一些问题,我已成功获得一个但我需要从几个IP地址获取,例如2。 这是我的代码:

package sample.weblog;
import java.io.*;
import java.net.*;
public class SampleWeblog {

public static void main(String[] args) throws FileNotFoundException, IOException {
    String ip = null;
    String theRest = null;
    String entry = null;
    int index = 0;

        FileInputStream fin = new FileInputStream("f:/file1.txt");
        Reader in = new InputStreamReader(fin);
        BufferedReader bin = new BufferedReader(in);

        for (entry = bin.readLine();entry != null;entry=bin.readLine()){
        InetAddress address = InetAddress.getByName(entry);
        System.out.println(address.getHostName() + " = " + entry);
        }
}
}

我在txt文件中输入了一些ip地址,例如8.8.8.8和208.65.153.238,即谷歌和YouTube。但后来得到的结果是这样的:

output

为什么第二个ip地址没有获得主机名? 谢谢。

1 个答案:

答案 0 :(得分:0)

getHostName执行反向名称查找。为此,它必须在Internet(DNS)上查询服务以获取名称(如果存在)。在某些情况下,查找将失败,因为反向查找从未由地址所有者配置,在其他情况下,将不存在给定地址的主机名。

有关详细信息,请阅读DNS反向名称查找。