zoukankan      html  css  js  c++  java
  • c socket inet_pton inet_ntop

    1
      #include <arpa/inet.h>

    /*

    表达式格式(presentation):形如192.168.0.1,ipv6 X:X:X:X:X:X:X:X
    数值格式(numeric):存储地址的二进制形式。
    */


    /*
    原型:int inet_pton( int family, const char *strptr, void *addrptr );
    功能:将字符串strptr(即表达格式的地址)转换为网络地址。
    参数:family既可以是AF_INET,也可以是AF_INET6;
          strptr指向ASCII地址的首地址(***.***.***.***格式),addrptr是套接字地址结构;
    返回值: 如果成功返回1;
            如果函数出错将返回一个负值,并将errno设置为EAFNOSUPPORT;
            如果参数af指定的地址族和src格式不对,函数将返回0。
    */

    /*
    原型:const char *inet_ntop(int family, const void *addrptr, char *strptr, socklen_t len );
    功能:将数值格式转换为表达式格式。
    参数:family既可以是AF_INET,也可以是AF_INET6;
          strptr指向ASCII地址的首地址(***.***.***.***格式),addrptr是套接字地址结构;
          len目标存储单元大小,避免溢出调用者的缓冲区。
    返回值: net_ntop函数成功的话返回字符串的首地址,错误返回NULL;
    */


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
      #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    int main (void)
    {
        char IPdotdec[20]; //存放点分十进制IP地址
        struct in_addr s; // IPv4地址结构体
        // 输入IP地址
        printf("Please input IP address: ");
        scanf("%s", IPdotdec);
        // 转换
        inet_pton(AF_INET, IPdotdec, (void *)&s);
        printf("inet_pton: 0x%x\n", s.s_addr); // 注意得到的字节序
        // 反转换
        inet_ntop(AF_INET, (void *)&s, IPdotdec, 16);
        printf("inet_ntop: %s\n", IPdotdec);
    }

    /*
    控制台:

    Please input IP address: 192.168.0.1
    inet_pton: 0x100a8c0
    inet_ntop: 192.168.0.1
    */

  • 相关阅读:
    springMvc
    计算机网络
    Mybatis 总结
    Spring 面试总结
    Java IO 流
    自定义类加载器
    缓存一致性协议
    dfs、bfs序
    7.26
    Trick
  • 原文地址:https://www.cnblogs.com/helloweworld/p/2682429.html
Copyright © 2011-2022 走看看