我现在正在学习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。但后来得到的结果是这样的:
为什么第二个ip地址没有获得主机名? 谢谢。
答案 0 :(得分:0)
getHostName执行反向名称查找。为此,它必须在Internet(DNS)上查询服务以获取名称(如果存在)。在某些情况下,查找将失败,因为反向查找从未由地址所有者配置,在其他情况下,将不存在给定地址的主机名。
有关详细信息,请阅读DNS反向名称查找。