将getifaddrs移植到Win XP

Goz*_*Goz 7 c++ macos windows-xp ipv4 ipv6

我正在尝试将MacOSX应用移植到Windows上,我遇到了getifaddrs的问题.基本上Windows不支持它.我正试图找到一种方法来重新实现它(对于AF_INET和AF_INET6),但Windows上的"等效"功能似乎与MacOSX支持完全不同.

有人曾经做过这种转换吗?如果是这样,有一个很好的方法我可以让Windows报告像MacOSX那样的界面信息吗?

Lau*_*ble 12

Windows上最接近的函数是GetAdaptersInfoGetAdaptersAddresses.MSDN文档非常全面,因此您应该找到所需的一切.


pat*_*cek 6

getifaddrs()不是一个可移植的解决方案,所以如果你需要支持多个平台,你应该考虑使用getaddrinfoPOSIX和Windows友好的.乍一看有点复杂,但实际上并没有那么糟糕.这个问题有一些很好的答案和关于这个主题的链接.(特别是,Beej页面showip.c上的示例非常有用,这里有一个Windows示例;请注意它顶部缺少一个,并确保链接.)#include <stdio.h>Ws2_32.lib