运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

是否有符合POSIX标准的方式获取我的计算机的本地网络IP地址?

运维开发网 https://www.qedev.com 2020-07-15 10:54 出处:网络 作者:运维开发网整理
我知道这个问题已经以一种或另一种形式被问了一百万次,但毫无疑问,这给了我一个符合POSIX标准的方法. 我需要获取计算机的本地网络地址,而不使用getifaddrs或任何其他非POSIX兼容的访问接口的方式.那可能吗 ? 没有直接支持这样的东西,但你可以使用udp套接字(SOCK_DGRAM)连接到已知的远程地址.由于udp套接字是无状态的,因此不会进行任何网络流量. 然后,您可以查询该套接字的本
我知道这个问题已经以一种或另一种形式被问了一百万次,但毫无疑问,这给了我一个符合POSIX标准的方法.

我需要获取计算机的本地网络地址,而不使用getifaddrs或任何其他非POSIX兼容的访问接口的方式.那可能吗 ?

没有直接支持这样的东西,但你可以使用udp套接字(SOCK_DGRAM)连接到已知的远程地址.由于udp套接字是无状态的,因此不会进行任何网络流量.

然后,您可以查询该套接字的本地端点(getsockname)以获取系统将路由的本地IP地址.由于udp是无状态的,因此只查询本地路由表,并且不会发出真正的网络流量.

之后别忘了关闭插座.

远程公共名称服务器很适合这个目的.您可以测试其中的几个

>其中一个可能偶尔会失败,或者可能没有路线这个地区的一些原因>您的进程可能与服务器和您在同一本地网络上可能只会获得一些特殊的本地地址>测试IPv4和IPv6地址

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消