日期:2014-05-20  浏览次数:20916 次

java程序getByName()函数用法问题
import java.net.*;

public class Example16_4 {

public static void main (String[] args) {
try{
InetAddress address_1=InetAddress.getByName("www.sina.com.cn");
System.out.println(address_1.toString());
InetAddress address_2=InetAddress.getByName("174.35.3.29");
System.out.println(address_2.toString());
}
catch(UnknownHostException e){
System.out.println("主机域名或IP地址错误,无法解析!");
}
}

}
运行结果是:
www.sina.com.cn/174.35.40.3
/174.35.3.29
为什么不是:
www.sina.com.cn/174.35.40.3
www.sina.com.cn/174.35.40.3


------解决方案--------------------
为什么是
www.sina.com.cn/174.35.40.3
www.sina.com.cn/174.35.40.3
??

第二个你填写的IP是174.35.3.29,根本就不是174.35.40.3
------解决方案--------------------
你用getAllByName替换getByName看看结果就知道了。
------解决方案--------------------
toString 会打印出域名及IP,入参不是域名时不会打印域名。
一个域名可以对应多个 IP,这个是域名对应的服务器使用了负载均衡。
------解决方案--------------------
探讨

你用getAllByName替换getByName看看结果就知道了。

------解决方案--------------------
探讨

试了,用getAllByName()替代后有运行结果:
www.sina.com.cn/174.35.52.140
www.sina.com.cn/174.35.52.142
/174.35.40.45


www.sina.com.cn/174.35.40.42
www.sina.com.cn/174.35.40.45
/174.35.40.45
还有好多种情况