inet_pton()怎么用
时间: 2024-06-12 12:09:21 浏览: 25
inet_pton()是一个用于将IP地址(IPv4或IPv6)从文本格式转换为二进制格式的函数,其函数原型为:
```
int inet_pton(int af, const char *src, void *dst);
```
其中,af参数为地址族,可选值为AF_INET(IPv4)或AF_INET6(IPv6);src参数为要转换的IP地址字符串;dst参数为转换后的二进制格式IP地址存放的缓冲区。
例如,要将IPv4地址字符串"192.168.0.1"转换为二进制格式,可以使用以下代码:
```
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
const char* ip_str = "192.168.0.1";
struct in_addr ip_bin;
if (inet_pton(AF_INET, ip_str, &ip_bin) <= 0) {
fprintf(stderr, "Invalid IP address: %s\n", ip_str);
exit(EXIT_FAILURE);
}
printf("IP address in binary format: 0x%x\n", ip_bin.s_addr);
return 0;
}
```
要将IPv6地址字符串转换为二进制格式,可以使用类似的代码,只需将af参数设为AF_INET6,dst参数改为指向struct in6_addr类型的指针即可。