inet_aton
是一个 C 语言中的网络函数,用于将点分十进制格式的 IPv4 地址转换为网络字节顺序的二进制形式。它在进行网络编程时非常有用,因为网络协议通常使用二进制形式表示 IP 地址。
函数原型
#include <arpa/inet.h>
int inet_aton(const char *cp, struct in_addr *inp);
参数
cp
: 指向以点分十进制表示的 IP 地址的字符串(如 “192.168.1.1”)。inp
: 指向struct in_addr
的指针,struct in_addr
结构用于存储转换后的地址。
返回值
- 成功时返回非零值(一般为 1)。
- 如果传入的地址无效,则返回 0。
示例代码
#include <stdio.h>
#include <arpa/inet.h>
int main() {
const char *ip_address = "192.168.1.1";
struct in_addr addr;
if (inet_aton(ip_address, &addr)) {
printf("IP address %s converted to binary: %u\n", ip_address, addr.s_addr);
} else {
printf("Invalid IP address\n");
}
return 0;
}
在这个示例中,如果输入的是有效的 IPv4 地址,程序会输出该地址对应的二进制格式;如果无效,则会提示“Invalid IP address”。
内容由零声教学AI助手提供,问题来源于学员提问