c++ - 如何获取直接连接到我的PC的计算机的IP地址

标签 c++ networking ip-address

我正在尝试编写一个函数来获取我网络中设备的 IP 地址(以及设备名称作为奖励),该网络将是两台计算机之间使用以太网电缆的直接连接或创建接入点(使用 wi-fi)

我试图搜索如何去做,但似乎我需要收听网络或似乎很难的东西。

希望您能指导我应该做什么或阅读以开始。

注意:我在两台计算机上都使用 Windows。

编辑: P.S:我需要 IP 地址,这样我就可以在我编写的客户端/服务器程序中使用 winsock 向另一台计算机发送消息。 我不能让服务器将其 IP 发送给客户端或相反的客户端吗?

最佳答案

如果您的软件在两台机器上运行,您可以让一台(或两台)机器在特定端口上发送特定广播(或者,如果您愿意,多播)UDP 数据包。您的程序也应该在同一个端口上监听。当它接收到该数据包时(使用 recvfrom()),recvfrom() 的第五个参数将包含发送数据包的机器的 IP 地址,即您想要的 IP 地址。

(如果您的软件没有在远程计算机上运行,​​您将需要使用一些更通用的发现机制,例如 mDNS 或 LLDP——希望您不必这样做,因为它是复杂得多)

关于c++ - 如何获取直接连接到我的PC的计算机的IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22953907/

相关文章:

mysql - 远程连接MySQL数据库出错

c++ - SSE 中的等零指令

c++ - 传递给接受基类的函数的变量是否仍然保留它们最派生的类?

c++ - openCv 裁剪图像

networking - GStreamer:通过网络传输 vorbis 编码的音频

linux - 如何连接到 vmplayer guest 操作系统上托管的网络服务器?

mongodb - 我应该使用什么 NPM 包来查找最近的城市。

c# - 获取客户端机器的IP地址

c# - .NET Core 2.x如何获取当前事件的本地网络IPv4地址?

c++ - 使用 C++ 将目录大小存储到整数变量中