【问题标题】:Get IP of a specific host is not working over a network with Java获取特定主机的 IP 无法通过 Java 网络工作
【发布时间】: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


【解决方案1】:

由于@ejp 不想再实际回答问题,所以这就是他的意思:

new URL(url).getHost() 是错误的。相反,使用

InetAddress ip = InetAddress.getByName(url)

由于您实际上并未传递 URL,请将参数重命名为 hostname

【讨论】:

    猜你喜欢
    • 2019-05-18
    • 2022-01-07
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 2011-12-24
    • 2018-07-14
    • 2018-01-02
    相关资源
    最近更新 更多