我正在尝试在Windows中创建一个C ++程序,它将网络上的所有IP地址输出到文本文件,但我无法在网络上找到任何其他有用的计算机。我想出了如何查询注册表并找到本地IP,但我甚至不知道从哪里开始寻找其他IP地址。我不想要一个复制粘贴cookie切割器代码,因为我想了解它是如何工作的,所以如果我能得到一个链接或一本书,将指导我在正确的方向,这将是伟大的。
答案 0 :(得分:0)
您想以什么目的获取这些IP?
我怀疑你正在寻找的是一种获取给定子网中所有可能的 IP的方法,这对于IPv4来说可以非常简单地完成。您只需获取您的计算机或路由器的IP地址,并使用按位和应用子网掩码。 (例如,192.168.1.20 & 255.255.255.0
= 192.168.1.0
,称为基数或网络地址)。此网络中的有效主机基本上是子网掩码中为零的所有位(前一示例中为255)。这意味着范围192.168.1.0 - 192.168.1.255
(由于网络地址和广播地址不是网络中主机的有效IP地址),因此是主机的有效IP地址。
除了路由器之外,网络上的任何机器都没有真正可靠的方法来获取有关这些地址中使用哪些地址的具体信息,因为网络上的机器之间的交互是自愿的,而不是隐含的。然而,大多数机器通常运行某种协议,使它们能够相互发现,例如打印机和文件共享。
您可以尝试ping网络中的每个可能的主机地址,或端口扫描,或者使用他们可能知道的某些协议与它们通信。或者,您可以使用具有已知协议的广播地址来请求网络上的所有计算机向您报告,如果他们正在运行某些谈论该协议的软件,他们将使用自己的地址进行响应。