【问题标题】:Is there a possibility to use computer name instead of IP if I am in a different network/domain?如果我在不同的网络/域中,是否可以使用计算机名称而不是 IP?
【发布时间】:2020-03-18 13:11:53
【问题描述】:

我有一个计算机名称列表,我必须创建一个相应 IP 地址的列表。以这样的方式完成:

        Iterator<String> iter = listWithComputerNames.iterator();
        while (iter.hasNext()) {
            String curName = iter.next();
            String ipAdress = "";
            try {
                InetAddress address = InetAddress.getByName(curName );
                ipAdress = address.getHostAddress();
            }
        }

如果我在与所有其他计算机相同的域中运行程序,这将有效。但是,我想在服务器上以批处理作业的形式运行它,该服务器位于不同的域中(但仍然是同一个本地网络!)。

由于两个域都在一个公司内,并且计算机可以使用 IP 相互通信,我想知道是否有可能明确告诉我的计算机名称来自不同的域:例如 name.domain.local,这样它甚至可以从不同的域解析为 IP。有谁知道诀​​窍吗?

【问题讨论】:

  • 您从哪里获得计算机名称列表?这些名字长什么样?它们是带有域名的完全限定名称吗?如果不是,它们是否都存在于同一个域名中,这样您就可以将域名附加到每个计算机名称中?
  • 您可以按照填充 listWithComputerNames 的方式执行此操作,而是填充 listWithComputerIps。
  • 我的同事向我提供了他们的计算机名称。我们尝试了计算机名称和完全限定名称,但服务器无法解析它们。 @Karim 我不知道 IP,因为它们会随着时间而改变,计算机名称不会。
  • 我在开玩笑,检查我的答案,如果服务器无法访问域名,这是一个可能的解决方案

标签: java dns ip


【解决方案1】:
InetAddress giriAddress = java.net.InetAddress.getByName("com.named.domain");

那么,如果你想要 IP 作为字符串

String address = giriAddress.getHostAddress();

您可以在本地环境中使用它来更新某种数据库,如果服务器想要 IP 地址,然后可以访问该数据库,或者甚至更好地将其公开为 Web 服务

【讨论】:

  • 不幸的是,完全限定名称也不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-10
  • 2011-10-15
  • 2013-07-03
  • 1970-01-01
  • 2018-07-12
  • 2012-02-05
  • 1970-01-01
相关资源
最近更新 更多