gpt4 book ai didi

c++ - 如何从 udp 套接字 (C/C++) 获取您自己的(本地)IP 地址

转载 作者:可可西里 更新时间:2023-11-01 16:20:11 25 4
gpt4 key购买 nike

  1. 您有多个网络适配器。
  2. 将 UDP 套接字绑定(bind)到本地端口,而不指定地址。
  3. 在其中一个适配器上接收数据包。

如何获取接收数据包的适配器的本地 IP 地址?

问题是,“接收适配器的 IP 地址是什么?”不是我们在

中获得的发件人地址
receive_from( ..., &senderAddr, ... );

打电话。

最佳答案

您可以枚举所有网络适配器,获取它们的 IP 地址,并将子网掩码覆盖的部分与发件人地址进行比较。

喜欢:

IPAddress FindLocalIPAddressOfIncomingPacket( senderAddr )
{
foreach( adapter in EnumAllNetworkAdapters() )
{
adapterSubnet = adapter.subnetmask & adapter.ipaddress;
senderSubnet = adapter.subnetmask & senderAddr;
if( adapterSubnet == senderSubnet )
{
return adapter.ipaddress;
}
}
}

关于c++ - 如何从 udp 套接字 (C/C++) 获取您自己的(本地)IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com