夜的第七章

ASP.NET、C#、.NET开发资源、Javascript等等为主的开发备注收藏注意警告等的一个个人博客。

« LINQ基本语法[转]山寨卫星锅黑屏破解 »

简单的屏蔽检测IP段(v4)的代码

/// <summary>
        /// 屏蔽IPv4段 by roydux
        /// </summary>
        /// <param name="startIP">开始ip</param>
        /// <param name="endIP">结束ip</param>
        /// <param name="ip">检查ip</param>
        /// <returns>
        /// true    在范围
        /// false   不在范围
        /// </returns>
        static bool IsAntiIP(string startIP, string endIP, string ip)
        {
            IPAddress ia;

            if (IPAddress.TryParse(ip,out ia) && (ia.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6))
            {
                return false;
            }

            string[] sdata = startIP.Split('.');
            string[] edata = endIP.Split('.');
            string[] cdata = ip.Split('.');

            for (int i = 0; i < 4; i++)
            {
                sdata[i] = sdata[i].PadLeft(3, '0');
                edata[i] = edata[i].PadLeft(3, '0');
                cdata[i] = cdata[i].PadLeft(3, '0');
            }

            startIP = string.Format("{0}{1}{2}{3}", sdata[0], sdata[1], sdata[2], sdata[3]);
            endIP = string.Format("{0}{1}{2}{3}", edata[0], edata[1], edata[2], edata[3]);
            ip = string.Format("{0}{1}{2}{3}", cdata[0], cdata[1], cdata[2], cdata[3]);

            long sip = long.Parse(startIP.Replace(".", ""));
            long eip = long.Parse(endIP.Replace(".", ""));
            long cip = long.Parse(ip.Replace(".", ""));

            if (cip >= sip && cip <= eip)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-Blog 1.8 Arwen Build 81206



©2007 - 2010 www.leadnt.com 保留一些权利吧