【发布时间】:2019-07-30 07:38:35
【问题描述】:
我无法通过网络获取主机名的 IP。 我可以获得公共 IP,但由于缺少协议,似乎无法通过网络工作:
public static void main(String[] args) throws UnknownHostException {
String url = "host22.my.network";
getIp(url);
}
public static void getIp(String url) throws UnknownHostException{
try {
InetAddress ip = InetAddress.getByName(new URL(url).getHost());
System.err.println(ip);
}
catch (MalformedURLException e) {
System.err.println(e.getMessage());
}
}
可能缺少协议前缀
【问题讨论】:
-
什么都可以。异常及其信息是什么?但是,您的
String常量肯定 不是 一个 URL。很难理解为什么您要使用一个非常好的主机名,尝试将其转换为 URL,然后才尝试将主机名取回,而您已经拥有它。 -
消息是“无协议”,我应该把什么作为协议?
-
您不需要协议。您不需要 URL。你需要一个主机名,而且你已经有了它。
-
@user207421 这是您的意见,还是您也尝试过您所说的?因为我提到的那段代码不适用于简单的主机名
-
InetAddtess.getByName()接受String hostname参数。这不是意见,而是事实。奇怪的问题。 “不起作用”不是问题描述。
标签: java networking ip-address