inet_addr 函数是在 <arpa/inet.h> 头文件中定义的。这个函数用于将点分十进制的 IP 地址字符串(如 “192.168.1.1”)转换为一个 32 位的网络字节序整数。
下面简单的示例展示了如何使用 inet_addr 函数:
#include <stdio.h>
#include <arpa/inet.h>
int main() {
struct in_addr addr;
char *ip = "192.168.1.1";
if (inet_aton(ip, &addr) == 0) {
perror("inet_aton");
return 1;
}
printf("IP 地址的整数值为: %u\n", addr.s_addr);
return 0;
}
示例中使用的是 inet_aton 函数而不是 inet_addr。这是因为 inet_addr 已经被废弃,并且在某些系统上可能不再可用。相反,inet_aton 是一个更现代且推荐使用的函数。
另外,当处理 IPv6 地址时,可能需要使用其他函数,如 inet_pton。