环境: linux gcc

三个函数 (适合IPV4)

#include<arpa/inet.h>
in_addr_t inet_addr(const char * strptr);			//将 IP 转换成 网络字节序
int inet_aton(const char * strptr,struct in_addr *inp);		//将 IP 转换成 网络字节序存入inp中,返回int为1成功,返回为0,则失败
char* inet_ntoa(struct in_addr in);				//将网络字节序 转换成 IP地址 (注意该函数不可重入)
#include<stdio.h>
#include<arpa/inet.h> //ip地址转换为 字节序
int main(int argc, char const *argv[])
{
    const char *ipString = "192.168.1.168";
    //使用inet_addr 将ip地址转换成 网络字节序

    in_addr_t networkResult =  inet_addr(ipString);
    if(networkResult == INADDR_NONE){
        printf("error");
    }else{
        printf("转success to %#x \n",networkResult);
    }

    //inet_aton函数 将ip地址转换成 网络字节序
    printf("开始将使用 inet_aton函数\n");
    struct in_addr * inp;
    int atonResult;
    atonResult = inet_aton(ipString,inp);
    if(atonResult ==1){
        printf("inet_aton success \n");
        printf(" in_addr_t : %#x \n",inp->s_addr);
    }else{
        printf("inet_aton error \n");
    }

    //inet_ntoa 函数 将网络字节序 转换成 ip地址 
    printf("将网络字节序 转换 成地址\n");
    char* inet_ntoaAddr = inet_ntoa(*inp);
    printf("网络字节序 转换 成 IPV4地址%s\n",inet_ntoaAddr);
    return 0;
}

编译run
image

两个转换函数(适合IPV4 和 IPV6)

#include<arpa/inet.h>
int inet_pton(int af,const char *src,void *dst);	//参数(协议,地址字符串,结果存储dst指向的内存)。

const char *inet_ntop(int af,const char *src,const char *dst ,socklen_t cnt);	//最后一个参数是指目标内存大小。

版权声明:本文为appearAndLeave原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/appearAndLeave/p/14961080.html