我一直试图在Java套接字上编写一些程序,但我陷于这个问题。
通常,使用工厂方法getLocalHost(),getbyAddress(byte [])和getbyName(string)来创建INetAddress对象。

例如...

INetAddress a=InetAddress.getbyName("www.google.com");


并尝试使用println方法打印上述对象,但我遇到了未知主机异常,但实际上我听说它将执行DNS查询并返回google.com服务器的IP地址之一,但这种方式无法正常工作...我用netbeans来运行程序,我们的大学也有一个代理服务器。

还有一件事...如果我使用getbyName(string)并提供一个与大学网络内其他PC名称相同的参数,那么它可以解析系统IP地址吗? 。就我而言,这无法解决。
  我也通过将Windows防火墙设置为关闭状态进行了检查,但没有成功。
请帮忙...

ping www.google.com显示“ ping请求找不到主机名google.com”

最佳答案

InetAddress.getByName使用的名称解析策略取决于操作系统。如果将操作系统配置为使用DNS来解析名称,则InetAddress.getByName将使用此名称。 (大概。)

要检查DNS是否正常工作,可以在终端上运行nslookup www.google.com


  还有一件事...如果我使用getbyName(string)并提供一个与大学网络内其他PC名称相同的参数,那么它可以解析系统IP地址吗?


如果系统上的其他程序可以将名称解析为IP地址,那么Java也应如此。

10-08 14:57