Java 如果我在不同的网络/域中,是否有可能使用计算机名而不是IP?
我有一个计算机名列表,我必须创建一个相应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 {
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地址,因为它们会随着时间的推移而改变,计算机名不会。我开玩笑的,在下面检查我的答案如果服务器无法访问域名,这是一个可能的解决方案不幸的是,完全限定名名也不起作用。