我正在尝试使用以下命令获取服务器ipaddress的主机名,
InetAddress serverdetails=InetAddress.getbyName(<ip-address>)
String serverhostname=serverdetails.gethostname();
但我得到 unknownhostexception。
注意:我可以使用命令提示符ping服务器地址。
代码:
private class PingTarget extends TimerTask {
@Override
public void run() {
try {
boolean reachable = InetAddress.getByName(
ConnectionPropHolder.TargetMachine).isReachable(5);
if (reachable) {
UploadtoServer();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
根据getByName(String)
的javadoc,如果
找不到主机的IP地址,或者为全局IPv6地址指定了scope_id。
如果字符串是无法解析为IP地址的主机名,或者是字符串形式的格式错误的IPv4或IPv6地址,则“无法找到主机”适用。
异常消息将告诉您上述哪些原因适用,并且它可能会告诉您尝试解析或查找的字符串。 (如果它没有告诉你后者,那么在异常处理程序中捕获并打印出ConnectionPropHolder.TargetMachine
的值是微不足道的。)