• c#中将IP地址转换成无符号整形数的方法与逆变换方法


    我们知道 IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。

    按照TCP/IP协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。
    而c#中int32的数就是四个字节的,但是符号要占掉一位所以就不够了,但是无符号的 UInt32 就没有这样的问题。

    所以理论上讲:UInt32是可以完整保存一个IP地址的。那下面的两个方法就是对IP与UInt32之间的互转换。

            public static string Int2IP(UInt32 ipCode) {
                
    byte a = (byte)((ipCode & 0xFF000000>> 0x18);
                
    byte b = (byte)((ipCode & 0x00FF0000>> 0xF);
                
    byte c = (byte)((ipCode & 0x0000FF00>> 0x8);
                
    byte d = (byte)(ipCode & 0x000000FF);
                
    string ipStr = String.Format("{0}.{1}.{2}.{3}", a, b, c, d);
                
    return ipStr;
            }

            
    public static UInt32 IP2Int(string ipStr) {
                
    string[] ip = ipStr.Split('.');
                
    uint ipCode = 0xFFFFFF00 | byte.Parse(ip[3]);
                ipCode 
    = ipCode & 0xFFFF00FF | (uint.Parse(ip[2]) << 0x8);
                ipCode 
    = ipCode & 0xFF00FFFF | (uint.Parse(ip[1]) << 0xF);
                ipCode 
    = ipCode & 0x00FFFFFF | (uint.Parse(ip[0]) << 0x18);
                
    return ipCode;
            }
  • 相关阅读:
    光猫改桥接,默认的超级管理员密码。
    Vmware+爱快软路由单机校园网多拨实现带宽叠加[测试用](非普遍性)
    魔百和破解教程
    用SSH工具XShell连接谷歌云 root用户或普通用户
    MySQL优化技巧【持续更新】
    Navicat常用快捷键
    IDEA实用插件Lombok
    Redis数据类型及命令
    Java代码优化总结(持续更新)
    Spring---AOP注解开发&jdbc模板&Spring事务管理
  • 原文地址:https://www.cnblogs.com/wwwzzg168/p/3569949.html
Copyright © 2020-2023  润新知