zoukankan      html  css  js  c++  java
  • (OK) ip-str.c

    #include <stdio.h> 
    #include <string.h>
    
    #include <sys/types.h>  
    #include <sys/socket.h>  
    #include <arpa/inet.h> 
    
    int main(void)
    { 
      char *token;
      char buf1[16];
      char buf2[4][4];
      char buf3[16];
      int i = 0;
      struct sockaddr_in addr;
      memset(buf1, 0, 16);
      memset(buf2, 0, 16);
      memset(buf3, 0, 16);
    
      //buf = inet_ntoa(sin_dest.sin_addr);
      //sprintf(buf1, "%s", inet_ntoa(sin_dest.sin_addr));
    
      sprintf(buf1, "%s", "112.26.0.8");
    
      token = strtok(buf1, ".");
      while (token != NULL)
      {
        sprintf(buf2[i++], "%s", token);
        token = strtok(NULL, ".");
      }
    
      strcat(strcat(strcat(strcat(strcat(strcat(strcat(buf3,buf2[0]), "."), buf2[1]), "."), buf2[2]), "."), buf2[3]);
      inet_aton(buf3, &addr.sin_addr);
      printf("%s (%u)
    ", inet_ntoa(addr.sin_addr), addr.sin_addr.s_addr);
    
      buf2[2][0] = '1';
      memset(buf3, 0, 16);
      strcat(strcat(strcat(strcat(strcat(strcat(strcat(buf3,buf2[0]), "."), buf2[1]), "."), buf2[2]), "."), buf2[3]);
      inet_aton(buf3, &addr.sin_addr);
      printf("%s (%u)
    ", inet_ntoa(addr.sin_addr), addr.sin_addr.s_addr);
    
      buf2[2][0] = '2';
      memset(buf3, 0, 16);
      strcat(strcat(strcat(strcat(strcat(strcat(strcat(buf3,buf2[0]), "."), buf2[1]), "."), buf2[2]), "."), buf2[3]);
      inet_aton(buf3, &addr.sin_addr);
      printf("%s (%u)
    ", inet_ntoa(addr.sin_addr), addr.sin_addr.s_addr);
    
      buf2[2][0] = '3';
      memset(buf3, 0, 16);
      strcat(strcat(strcat(strcat(strcat(strcat(strcat(buf3,buf2[0]), "."), buf2[1]), "."), buf2[2]), "."), buf2[3]);
      inet_aton(buf3, &addr.sin_addr);
      printf("%s (%u)
    ", inet_ntoa(addr.sin_addr), addr.sin_addr.s_addr);
    
      buf2[2][0] = '4';
      memset(buf3, 0, 16);
      strcat(strcat(strcat(strcat(strcat(strcat(strcat(buf3,buf2[0]), "."), buf2[1]), "."), buf2[2]), "."), buf2[3]);
      inet_aton(buf3, &addr.sin_addr);
      printf("%s (%u)
    ", inet_ntoa(addr.sin_addr), addr.sin_addr.s_addr);
    
      addr.sin_addr.s_addr = inet_addr("112.26.9.8");
      printf("%s (%u)
    ", inet_ntoa(addr.sin_addr), addr.sin_addr.s_addr);
    
      //---------------------------------------
      const char *address = "255.255.255.255";
    
      inet_aton(address, &addr.sin_addr);
      printf("%s (%u)
    ", address, addr.sin_addr.s_addr);
      //---------------------------------------
    
      return 0;
    }
    


  • 相关阅读:
    .NET : 单元测试到底给我们带来什么
    .NET : 如何将16进制颜色代码转换为十进制
    LINQ : 谈谈LINQ TO SQL中的直接加载和延迟加载
    .NET : 单元测试的几个Attribute介绍
    .NET : 在单元测试中使用外部文件作为数据源
    再来谈谈json
    .NET : 关于图片格式的问题
    VSTS : 比较性能基准
    .NET : 如何将大文件写入到数据库中
    LINQ : 如何在JOIN或者GROUP BY的时候使用复合键
  • 原文地址:https://www.cnblogs.com/ztguang/p/12644655.html
Copyright © 2011-2022 走看看