博客
关于我
将ip地址用整形保存
阅读量:333 次
发布时间:2019-03-04

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

将IP地址转换为整数的方法

假设有一个字符串const char* str = "172.168.22.59",我们需要将其转换为整数并存储,然后再读取出来。以下是具体实现方法。

存储步骤

我们可以利用位操作将IP地址转换为整数。具体步骤如下:

  • 将字符串以"."为分隔符分解成四个部分。
  • 将每个部分存储到一个unsigned int的位段中。
  • 将位段赋值给一个unsigned int变量。

读取步骤

读取整数时,我们需要逐个字节进行读取。具体实现如下:

  • 将整数存储在一个结构体中,每一位分别对应一个字节。
  • 将结构体的地址转换为unsigned int类型。
  • 逐个字节读取并输出结果。
  struct A{      unsigned char a : 8;      unsigned char b : 8;      unsigned char c : 8;      unsigned char d : 8;  }val;  int main(){      const char* str = "172.168.22.59";      int arr[4] = {0};      int temp = 0;      int sub = 0;      while (*str){          if (*str == '.'){              arr[sub++] = temp;              temp = 0;          } else{              temp *= 10;              temp += *str - '0';          }          str++;      }      arr[sub] = temp;      //存储整数到位段中      val.a = arr[0];      val.b = arr[1];      val.c = arr[2];      val.d = arr[3];      unsigned int *p = (unsigned int*)&val;      unsigned int num = *p;      //读取整数      unsigned char *read = (unsigned char*)p;      for (int i = 0; i < 4; i++){          printf("%d", *(read + i));          if (i != 3){              printf(".");          } else{              printf("\n");          }      }  }

通过以上方法,我们可以将IP地址转换为整数并进行存储和读取操作。这是一种常用的技术解决方案,适用于需要将网络地址转换为数字形式的场景。

转载地址:http://shse.baihongyu.com/

你可能感兴趣的文章
剑指offer JZ31 整数中1出现的次数
查看>>
实现基于scrapy框架的天气预报爬虫hengYangSpaider @572311文
查看>>
maven打包指定名称并去除jar-with-dependencies后缀
查看>>
Netty4服务端入门代码示例
查看>>
java连接mysql,jdbc驱动
查看>>
C++中的static成员函数以及static成员变量详解
查看>>
操作系统前传第六课--开发中的辅助工具
查看>>
Linux系统编程44 信号 - 信号的响应过程分析!!!
查看>>
win10正版系统安装 win10系统启动盘制作 小白装机第一步(U盘装机)
查看>>
VL53L0x TOF激光测距的 stm32 HAL库驱动代码
查看>>
怎么玩LOG4J
查看>>
Oracle创建用户,分配表空间
查看>>
自定义标签(JSP2.0)简单标签
查看>>
MyBatis自定义类型转换器
查看>>
机器学习(湖北师范大学教程)-极大似然估计算法
查看>>
2019年下半年总结
查看>>
读《红楼梦》有感
查看>>
【C# 重构】—参数化查询, 需要参数,但未提供该参数
查看>>
决策树(二)—— ID3和C4.5
查看>>
MySQL~教你满分回答什么是数据库索引? 索引的数据结构是什么? 什么是事务?
查看>>