c - 如何使用 C 获取 OS X 上所有接口(interface)的 IP 地址

标签 c macos ioctl

我正在将代码从 Linux 移植到 OS X,但出现以下错误:

src/proxy_linux.c:784: error: 'SIOCGIFHWADDR' undeclared (first use in this function)
src/proxy_linux.c:784: error: (Each undeclared identifier is reported only once
src/proxy_linux.c:784: error: for each function it appears in.)
src/proxy_linux.c:788: error: 'struct ifreq' has no member named 'ifr_hwaddr'

我使用 Mac OS X 10.7.5 (11G63) ) 作为开发系统。

OS X 不支持 SIOCGIFHWADDR,我无法找到任何可靠的来源来列出所有接口(interface)的 IP 地址和 MAC 地址。我在苹果开发者网站上找到的唯一一个使用“IOKit”,它也不向后兼容。任何这方面的帮助将不胜感激

最佳答案

如果不涉及沙盒或 App Store,您可以自己解析 ifconfig -a 的输出并提取地址。如果是这样,那么你就不走运了,因为苹果出于隐私原因不允许这样做。

关于c - 如何使用 C 获取 OS X 上所有接口(interface)的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34282811/

相关文章:

c - 有明确答案的未定义表达式?

c++ - 编译器是否将给定常量参数的简单函数简化为唯一指令?

C - fopen无效文件

objective-c - XPCService 未从应用程序启动

c - 为什么 CDROM_TOC.Length 是 UCHAR[2] 而不是 WORD?

c++ - 在 Windows 中创建和移动超过 260 个字符的路径名的程序

xcode - 如何在 Xcode 中创建 .storekit 文件?

macos - ld : library not found for -lssl

linux - ioctl() 调用将文件描述符重置为 0

Java 到 C 对象传递