【问题标题】:How to Verify If two hostnames or i.p address points to same machine in c++如何验证两个主机名或IP地址是否指向C++中的同一台机器
【发布时间】:2021-02-24 04:57:18
【问题描述】:

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

【问题讨论】:

  • 解析主机名然后比较ips?
  • 虚拟机使这大大复杂化。

标签: c++ c sockets ip-address hostname


【解决方案1】:

首先,您需要了解“机器”代表什么。
一个主机可以有多个 IP 地址(例如两个网卡/NIC)。

如果您愿意只测试“相同的 IP” - 那么您可以使用
gethostbyname() 调用将不同的名称解析为实际 IP。

即使这也不是防火的,因为它依赖本地资源 (DNS) 来做
翻译,如果设置不正确会导致不同的结果。

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

【讨论】:

  • 我不关心网络 IP。每台机器都有自己唯一的ip地址吗?
  • @rsev4292340:通常是的,至少在本地是这样。但是,192.168.1.1 并不是全局唯一的;有数百万台机器使用该地址。
猜你喜欢
  • 2014-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-12
  • 2022-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多