如何验证两个主机名或IP地址是否指向C ++中的同一台计算机

问题描述

我有一些机器,并且为它们定义了主机名。我想编写一个c ++程序,检查两个主机名是否都指向不同的计算机并执行一些步骤。如果它们都指向同一机器程序,则应终止。 strcmp不能用于比较,因为一台机器可以有多个主机名。

解决方法

首先,您需要了解“机器”的含义。
主机可以具有多个IP地址(例如,两个网卡/ NIC)。

如果您只想测试“相同的IP”,则可以使用
gethostbyname()调用以将不同的名称解析为实际IP。

即使这不是防火的,因为它依赖于本地资源(DNS)进行操作
翻译,如果翻译不正确会导致不同的结果。

一种确定的方法是在远程计算机上设置一个代理(或使用telnet或ping之类的代理),该代理实际上尝试访问名称/地址并查看它们是否到达相同的目的地。