Windows下C盘如何获取本机IP地址?我无法在以下代码中获取我的机器的IP地址:
#include <ifaddrs.h>
#include <stdio.h>
int main()
{
struct ifaddrs *id;
int val;
val = getifaddrs(&id);
printf("Network Interface Name :- %s\n",id->ifa_name);
printf("Network Address of %s :- %d\n",id->ifa_name,id->ifa_addr);
printf("Network Data :- %d \n",id->ifa_data);
printf("Socket Data : -%c\n",id->ifa_addr->sa_data);
return 0;
}
我在编译时遇到错误:
致命错误 C1083:无法打开包含文件:'net/if.h':没有这样的文件或目录。
我无法使用#include <net/if.h>
因为它仅在 Linux 上可用。
您显示的代码无法编译,因为它是为 Linux 而不是 Windows 设计的。没有<net/if.h>
Windows 上的标头。
getifaddrs() http://man7.org/linux/man-pages/man3/getifaddrs.3.html返回本地接口地址的链接列表。但getifaddrs()
Windows 上根本不存在(除非您找到自定义的第 3 方实现)。
Windows 上的等效方法是使用 Win32GetAdaptersInfo() https://msdn.microsoft.com/en-us/library/windows/desktop/aa365917.aspxXP 及更早版本上的功能,或者GetAdaptersAddresses() https://msdn.microsoft.com/en-us/library/windows/desktop/aa365915.aspx在 Vista 及更高版本上运行。这两个函数都返回详细适配器信息的链接列表(不仅仅是地址)。
MSDN 上的文档中提供了 C 示例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)