zoukankan      html  css  js  c++  java
  • inet_pton inet_ntop inet_aton htonl

    #include <stdio.h>
    #include <stdlib.h>
    #include <errno.h>
    
    #include <string.h> // memory zero
    
    #include <sys/types.h>
    #include <sys/socket.h> // AF_INET
    #include <arpa/inet.h> // inet_* 头文件
    #include <netinet/in.h> // struct sockaddr_in
    
    int main(int argc, char **argv)
    {
        char szIP[] = "192.168.88.130";
        struct sockaddr_in addr;
        memset(&addr, 0, sizeof(addr));
        
        // inet_pton
        int ret = inet_pton(AF_INET, szIP, &addr.sin_addr); // 将 字符串 转为 网络字节序
        printf("ret = %d.
    ", ret); // ret = 1
        printf("addr.sin_addr: %2X
    ", addr.sin_addr); // 8258A8C0
        printf("addr.sin_addr.s_addr: %2X
    ", addr.sin_addr.s_addr); // 8258A8C0
    
        unsigned long lip = 0x8258A8C0; // 主机序
        printf("lip: %2X
    ", lip); 
    
        // inet_ntop 二进制整数 -> 点分十进制
        char strTemp[20]; //存放点分十进制IP地址
        if( inet_ntop(AF_INET, (void*)&lip, strTemp, (socklen_t )sizeof(strTemp)) != NULL) // 网络字节序输出
            printf("strTemp = %s
    ", strTemp); // strTemp = 192.168.88.130
        
        // htonl
        lip = htonl(lip);
        printf("htonl(lip): %2X
    ", lip); // C0A85882 
        
        // inet_aton
        in_addr myin;
        ret = inet_aton(strTemp, &myin);
        printf("ret = %d, strTemp = %s, inet_aton:%2X", ret, strTemp, myin.s_addr); // 网络字节序输入 myin.s_addr = 8258A8C0
    
        
        getchar();
    
        return 0;    
    }
  • 相关阅读:
    回档|朴素的网络游戏
    回档|NOIP2010 关押罪犯
    回档|tyvj1091 等差数列
    python lambda 函数
    python map函数
    linux命令清除服务器缓存
    python 类
    距阵的运用
    有一种感动叫ACM(记WJMZBMR在成都赛区开幕式上的讲话)
    C语言strstr()函数:返回字符串中首次出现子串的地址
  • 原文地址:https://www.cnblogs.com/sylar-liang/p/4306750.html
Copyright © 2011-2022 走看看