Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果我在不同的网络/域中,是否有可能使用计算机名而不是IP?_Java_Dns_Ip - Fatal编程技术网

Java 如果我在不同的网络/域中,是否有可能使用计算机名而不是IP?

Java 如果我在不同的网络/域中,是否有可能使用计算机名而不是IP?,java,dns,ip,Java,Dns,Ip,我有一个计算机名列表,我必须创建一个相应IP地址的列表。这样做的方式如下: Iterator<String> iter = listWithComputerNames.iterator(); while (iter.hasNext()) { String curName = iter.next(); String ipAdress = ""; try {

我有一个计算机名列表,我必须创建一个相应IP地址的列表。这样做的方式如下:

        Iterator<String> iter = listWithComputerNames.iterator();
        while (iter.hasNext()) {
            String curName = iter.next();
            String ipAdress = "";
            try {
                InetAddress address = InetAddress.getByName(curName );
                ipAdress = address.getHostAddress();
            }
        }
Iterator iter=listWithComputerNames.Iterator();
while(iter.hasNext()){
字符串curName=iter.next();
字符串“”;
试一试{
InetAddress=InetAddress.getByName(curName);
ipAddress=地址。getHostAddress();
}
}
如果我在与所有其他计算机相同的域中运行该程序,则此操作有效。但是,我希望在服务器上以批处理作业的形式运行,该服务器位于不同的域(但仍然是相同的本地网络!)

由于这两个域都在一家公司内,并且计算机可以使用IPs相互通信,我想知道是否有可能明确指出我的计算机名来自不同的域:类似name.domain.local,这样即使来自不同的域,它也可以解析为IP。有人知道诀窍吗

InetAddress giriAddress = java.net.InetAddress.getByName("com.named.domain");
然后,如果希望IP作为字符串

String address = giriAddress.getHostAddress();

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

从何处获取计算机名列表?这些名字看起来像什么?它们是带有域名的完全限定名吗?如果没有,它们是否都存在于同一个域名中,这样您就可以将域名附加到每台计算机名中?您可以使用计算机名填充列表的相同方法,而不是使用计算机IP填充列表。我的同事向我提供了他们的计算机名。我们尝试了计算机名和完全限定名,但服务器无法解析它们@Karim我不知道IP地址,因为它们会随着时间的推移而改变,计算机名不会。我开玩笑的,在下面检查我的答案如果服务器无法访问域名,这是一个可能的解决方案不幸的是,完全限定名名也不起作用。