inet_addr()怎么用
时间: 2024-04-10 11:26:52 浏览: 130
inet_addr()函数是用于将一个点分十进制的IP地址转换为一个32位的网络序列IP地址。
它的函数原型如下:
```
unsigned long inet_addr(const char *cp);
```
其中,参数`cp`是一个指向点分十进制IP地址字符串的指针。
函数返回值是一个32位的网络序列IP地址,如果转换失败则返回`INADDR_NONE`。
下面是一个示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <arpa/inet.h>
int main()
{
char ip_str[] = "192.168.1.1";
unsigned long ip_num;
// 将点分十进制IP地址转换为网络序列IP地址
ip_num = inet_addr(ip_str);
if (ip_num == INADDR_NONE) {
printf("inet_addr conversion error!\n");
exit(1);
}
// 输出转换后的IP地址
printf("IP address in network byte order: 0x%08X\n", ip_num);
return 0;
}
```
运行结果为:
```
IP address in network byte order: 0x0101A8C0
```
可以看到,将点分十进制IP地址转换为网络序列IP地址后,输出的结果是一个32位的十六进制数,它表示的是IP地址的网络序列形式。
阅读全文