关于按名称

时间:2017-02-10 16:32:12

标签: java networking network-programming

我想验证关于InetAddress.getByName(String)的一件事。

例如,有一个应用程序向其服务器发送名为 www.coolapp.com 的请求,我可以通过以下方式获取此服务器的IP地址:

String serverIp = InetAddress.getByName("www.coolapp.com");

但如果应用程序设计为在地理位置连接到不同的服务器,此功能是否会返回应用程序连接到的服务器的相应IP,尽管主机名是相同的" www.coolapp.com" ?

例如,我在欧洲使用该应用程序,它连接到德国的服务器,服务器主机名是" www.coolapp.com" IP是182.12.12.12。然后,如果我去日本,该应用程序将连接到" www.coolapp.com" IP是123.13.13.13 API是否会根据地理位置返回相应的IP?

1 个答案:

答案 0 :(得分:1)

InetAddress.getByName()执行DNS查询,因此适用DNS规则。

在DNS中,您可以在不同的地理位置获取不同的IP。但是,DNS还允许为每个DNS名称(link)定义更多IP。在这种情况下,大多数DNS解析器在地址之间交替,因此即使在一个goegraphical位置,您可能会在两个连续查询中获得不同的IP。这可能会导致您无法获得与之相关的IP。

请注意,这可能会受到途中或计算机上的任何缓存的影响。