首页 > 解决方案 > 如果我在不同的网络/域中,是否可以使用计算机名称而不是 IP?

问题描述

我有一个计算机名称列表,我必须创建一个相应 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。有谁知道诀​​窍?

标签: javadnsip

解决方案


InetAddress giriAddress = java.net.InetAddress.getByName("com.named.domain");

然后,如果您希望 IP 作为字符串

String address = giriAddress.getHostAddress();

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


推荐阅读