inet_pton 是一个用于将IP地址转换为网络地址结构的函数,其原型如下:
#include <arpa/inet.h>
int inet_pton(int af, const char *src, void *dst);
参数解释:
af
:地址族,可以是 AF_INET(IPv4)或 AF_INET6(IPv6)src
:表示要转换的字符串形式的IP地址dst
:指向用于存储转换后结果的内存缓冲区
返回值:
- 如果转换成功,则返回1(对于IPv4)或者0(对于IPv6)
- 如果传入的参数有误导致转换失败,则返回 -1,并设置 errno 错误码
使用示例:
#include <stdio.h>
#include <arpa/inet.h>
int main() {
struct in_addr ipv4_addr;
const char* ipv4_str = "192.168.0.1";
if (inet_pton(AF_INET, ipv4_str, &(ipv4_addr.s_addr)) <= 0) {
perror("inet_pton error");
return 1;
}
printf("IPv4 address: %s\n", inet_ntoa(ipv4_addr));
return 0;
}
上述示例将一个字符串形式的 IPv4 地址转换为网络地址结构,并通过 inet_ntoa 函数打印出来。请注意,在实际应用中,建议先检查返回值是否为正数,以避免错误发生。
内容由零声教学AI助手提供,问题来源于学员提问