zoukankan      html  css  js  c++  java
  • 将IP地址与Int转换

    有时会碰到这样的需求,需要将IP地址转换为整数存放,在读取时再转换为IP地址格式

    1、将IP字符串转换为整型保存

    代码如下:

                string address;
    int intAddress;
    string ipAddress;
    while ((address = Console.ReadLine()) != "\\0")
    {
    //将IP地址转换为字节数组
    byte[] IPArr = IPAddress.Parse(address).GetAddressBytes();

    //显示出来字节数组存放的内容,结果以16进制显示
    Console.WriteLine(BitConverter.ToString(IPArr, 0, IPArr.Length));

    //将字节数组转换为整型
    intAddress = BitConverter.ToInt32(IPArr, 0);
    Console.WriteLine(intAddress);

    }

    Console.ReadLine();

    运行结果:

    C0-A8-0A-11  是IPArr转换为string类型时的输出结果,也是192 168 10 17 的16进制

    285911232 是IPArr转换为整数的结果,C0是最低位,也就是说该整数是由 11-0A-A8-C0转换成10进制的来的,大家可以试试!

    2、将IP转换的整型数组转换为IP格式

    其实是第一部分的逆过程,先将整型转换为字节数组,再将字节数组转换为IP

    代码如下:

     
    //将整型转换为IP
    ipAddress = new IPAddress(BitConverter.GetBytes(intAddress)).ToString();

    运行结果:

    最后一行即为原来的IP

    3、总结

      两个过程是互逆的过程,IP转整型:利用IPAddress.GetAddressBytes(),获取IP的字节数组格式,然后利用BitConverter.ToInt32(),来转换为Int.涉及到的算法,无非是将字节数组转换为16进制,然后数组的第一个数值为最低位这样的顺序来转换为10进制数得到整型数据;整型转IP则将这个过程反过来。

  • 相关阅读:
    python安装cnstd卡住
    _、__、__xx__之间的差别
    Celery模块使用
    同一主机,开启多个不同端口的redis进程
    php配置变更记录
    Linux安装Nodejs
    ElasticSearch中term和match探索
    Centos安装elasticsearch,php连接使用
    centos8自定义目录安装php7.3
    centos8自定义目录安装nginx
  • 原文地址:https://www.cnblogs.com/ATually/p/2411641.html
Copyright © 2011-2022 走看看