您现在的位置是:首页 > 文章详情文章详情

将Ip转为int, 将int转为IP-算法问题

会飞的猪 2017-08-31 516人已围观

简介白码驿站是一个面向开发者的知识共享社区,专注于为开发者打造一个纯净的技术交流社区(源码下载,免费在线图片压缩,jquery插件,插件下载,JS/CSS在线压缩。)-白码驿站

我们为什么要ip转换为int呢?那是因为ip字符串转int,方便操作,比如判等,hash。尤其各种防火墙规则过滤算法。所以有时候会有将ip转换为int的需求。

这里就将代码贴出来供大家参考。

源码下载:GetIp.zip

将ip转为int

                                        
//IP转int
        public static long chIP2Int(string ipaddress)
        {
            try
            {
                string[] startIP = ipaddress.Split('.');
                long U = Convert.ToInt64(startIP[0]) << 24;
                U += Convert.ToInt64(startIP[1]) << 16;
                U += Convert.ToInt64(startIP[2]) << 8;
                U += Convert.ToInt64(startIP[3]);
                return U;
            }
            catch
            {
                return 0;
            }
        }
                                



将int转为ip

                                        
//int转IP
        public static string chInt2IP(long ipaddress)
        {
            try
            {
                if (ipaddress == 0)
                {
                    return "";
                }
                else
                {
                    long ui1 = ipaddress & 0xFF000000;
                    ui1 = ui1 >> 24;
                    long ui2 = ipaddress & 0x00FF0000;
                    ui2 = ui2 >> 16;
                    long ui3 = ipaddress & 0x0000FF00;
                    ui3 = ui3 >> 8;
                    long ui4 = ipaddress & 0x000000FF;
                    string IPstr = "";
                    IPstr = ui1.ToString() + "." + ui2.ToString() + "." + ui3.ToString() + "." + ui4.ToString();
                    return IPstr;
                }
            }
            catch
            {
                return "";
            }
        }
                                


执行结果:

    

blob.png


Tags: C# 、 操作IP地址

很赞哦! (0)

系统处理中...