我刚遇到一个问题,我必须检查路径是否指向Windows共享。此问题的一部分是检查主机A是否与主机B相同。其中主机A和主机B可以是以下之一{IPv4-Address,IPv6-Address,Hostname,FQDN}。因为我不需要确切,所以在我的案例中解析和比较IP地址就足够了。
但理论上,是否存在检查主机是否相同的方法?
答案 0 :(得分:2)
不,没有通用的方法来查看两个标识符(名称或地址)是否转到同一主机。一个例子:192.0.2.1
和2001:db8::bad:dcaf
。它们是一样的吗? (答:不能说)
互联网中没有主机身份的一般概念。某些协议具有这样的概念,例如SSH(连接到主机,查看指纹是否匹配)或HIP(测试密钥),但您依赖于为这些特定计算机激活的此协议。
某些启发式方法可能有所帮助(例如fingerprinting机器),但它将远远不是100%。
答案 1 :(得分:0)
将两个地址传递到getaddrinfo()
函数,并比较所有匹配项的结果列表。
与gethostbyname()
不同,此函数将很乐意解析IPv6文字,并且还将返回与主机名相关联的任何相关A
或AAAA
条记录。