博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言实现字符串IP与整数型IP的相互转换
阅读量:5280 次
发布时间:2019-06-14

本文共 1084 字,大约阅读时间需要 3 分钟。

[cpp]
  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <string.h>  
  4. #include <malloc.h>  
  5.   
  6. int main(int argc,char *argv[])  
  7. {  
  8.   
  9.     const char *ip ="192.168.34.232";  
  10.     char *ipstr=NULL;  
  11.     char str_ip_index[4]={
    '\0'};  
  12.     unsigned int ip_int,ip_add=0,ip_int_index[4],ip_temp_numbr=24;  
  13.     int j =0,a=3;     
  14.     for(unsigned int i =0;i<=strlen(ip);i++)//要用到'\0'  
  15.     {  
  16.         if (ip[i]=='\0'||ip[i]=='.')  
  17.         {             
  18.             ip_int =atoi(str_ip_index);   
  19.             if (ip_int<0||ip_int>255)  
  20.             {  
  21.                 printf("IP地址有误\n");  
  22.                 system("pause");  
  23.                 return 0;                 
  24.             }  
  25.   
  26.             ip_add+=(ip_int*((unsigned int)pow(256.0,a)));            
  27.             a--;  
  28.             memset(str_ip_index,0,sizeof(str_ip_index));  
  29. //          for (int x=0;x<4;x++)  
  30. //          {  
  31. //              str_ip_index[x]='\0';  
  32. //          }  
  33.             j=0;  
  34.             continue;  
  35.         }  
  36.   
  37.         str_ip_index[j]=ip[i];  
  38.         j++;  
  39.     }     
  40.     printf("%u\n",ip_add);  
  41.       
  42.     //转换成x.x.x.x  
  43.     for(j=0;j<4;j++)  
  44.     {  
  45.         ip_int_index[j]=(ip_add>>ip_temp_numbr)&0xFF;  
  46.         ip_temp_numbr-=8;  
  47.     }  
  48.   
  49.     if ((ipstr=(char *)malloc(17*sizeof(char)))==NULL)  
  50.     {  
  51.         return 0;  
  52.     }  
  53.       
  54.     sprintf(ipstr,"%d.%d.%d.%d",ip_int_index[0],ip_int_index[1],ip_int_index[2],ip_int_index[3]);  
  55.     printf("%s\n",ipstr);  
  56.     free(ipstr);  
  57.     ipstr=NULL;  
  58.     system("pause");  
  59.     return 0;  
  60. }  

转换效果:

转载于:https://www.cnblogs.com/dpf-learn/p/7727552.html

你可能感兴趣的文章
简单的数据库操作
查看>>
帧的最小长度 CSMA/CD
查看>>
普通求素数和线性筛素数
查看>>
PHP截取中英文混合字符
查看>>
电子眼抓拍大解密
查看>>
51nod1076 (边双连通)
查看>>
Linux pipe函数
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>
关于本博客说明
查看>>
[Kaggle] Sentiment Analysis on Movie Reviews
查看>>
价值观
查看>>
mongodb命令----批量更改文档字段名
查看>>
国外常见互联网盈利创新模式
查看>>
android:scaleType属性
查看>>
shell脚本
查看>>
Upload Image to .NET Core 2.1 API
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
Linux中防火墙centos
查看>>
centos下同时启动多个tomcat
查看>>