这是一系列从手机中获取IP和Mac地址的函数之一。
strcpy(temp, (char *)ether_ntoa((const struct ether_addr *)LLADDR(sdl)));
编辑:不需要等价函数,只是缺少一些头文件。
编辑:向LLADDR(sdl)添加转换。
这是一系列从手机中获取IP和Mac地址的函数之一。
strcpy(temp, (char *)ether_ntoa((const struct ether_addr *)LLADDR(sdl)));
编辑:不需要等价函数,只是缺少一些头文件。
编辑:向LLADDR(sdl)添加转换。
据我所理解,错误信息并未声称函数丢失,只是你没有包含它的声明。(我不知道它是否存在,只是消息有不同的抱怨。)
如果有帮助的话,man ether_ntoa
告诉我:
#include <sys/types.h>
#include <sys/socket.h>
#include <net/ethernet.h>
LLADDR
,但是由于ether_ntoa
参数被称为const struct ether_addr *
,我猜你对问题的原因是正确的。 - Phillip Millsether_ntoa()
的参数上出现了类型错误,因为LLADDR(sdl)
返回的是一个char *
类型,但是ether_ntoa()
需要另外一种类型。通过强制类型转换解决: ether_ntoa((const struct ether_addr *)LLADDR(sdl)))
,现在一切似乎仍然正常工作。 - Orchid我包含了以下头文件,源代码编译成功:
#import <arpa/inet.h>