您的位置:首页 > 理论基础 > 计算机网络

网络字节序 主机字节序 点分十进制ip 相互转换

2016-05-16 12:13 513 查看
#include <stdio.h> 

#include <stdlib.h> 

#include <unistd.h> 

#include <string.h> 

#include <netinet/in.h> 

#include <sys/socket.h> 

#include <sys/types.h> 

#include <arpa/inet.h>

 

int main() 



    char ip[] = "192.168.22.1"; 

    long r1, r2;  //long 

 int r3;

    struct in_addr addr; 

 

    r1 = inet_addr(ip); //返回网络字节序 

    if(-1 == r1){ 

        printf("inet_addr return -1\n"); 

    }else{ 

        printf("inet_addr ip: %lx\n",r1);

  printf("inet_addr ip: %x\n", ntohl(r1));  

    } 

     

    r2 = inet_network(ip);    //返回主机字节序 

    if(-1 == r2){ 

        printf("inet_network return -1\n"); 

    }else{ 

        printf("inet_network ip: %lx\n",r2);  

        printf("inet_network ip: %x\n", htonl(r2));   //ntohl: 主机字节序 ——> 网络字节序 

    } 

 memcpy(&addr,&r1,4);

 printf("%s\n", inet_ntoa(addr)); //网络字节序->点分十进制IP

 

    memset(&addr,0,4);

    r3 = inet_aton(ip, &addr);  //返回网络字节序 

    if(0 == r3){ 

        printf("inet_aton return -1/n"); 

    }else{ 

        printf("inet_aton ip: %lx\n", addr.s_addr); 

    } 

 

    return 0; 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: