日期:2014-05-17  浏览次数:21196 次

C#判断某IP是否属于预设的IP段
C# code

                        int tmpIpNumber = inIP1 * 256 * 256 * 256 + inIP2 * 256 * 256 + inIP3 * 256 + inIP4;
                        //需要判断的IP
                        if (xmlIP.IndexOf("-") != -1)
                        //IP段是以如192.168.0.3-192.168.0.200形式界定的
                        {
                            string[] IPToIP = xmlIP.Split('-');
                            string IPToIP1 = IPToIP[0];
                            string IPToIP2 = IPToIP[1];
                            string[] ToIP1s = IPToIP1.Split('.');
                            string[] ToIP2s = IPToIP2.Split('.');
                            int IP1Number = int.Parse(ToIP1s[0]) * 256 * 256 * 256 + int.Parse(ToIP1s[1]) * 256 * 256 + int.Parse(ToIP1s[2]) * 256 + int.Parse(ToIP1s[3]);//IP段开始
                            int IP2Number = int.Parse(ToIP2s[0]) * 256 * 256 * 256 + int.Parse(ToIP2s[1]) * 256 * 256 + int.Parse(ToIP2s[2]) * 256 + int.Parse(ToIP2s[3]);//IP段结束
                            if (IP1Number < tmpIpNumber && tmpIpNumber < IP2Number)
                            {
                                 
                                return true;
                            }
                        }



上面得到的tmpIpNumber,IP1Number,IP2Number 的值是负数,请问是为什么,这样的方式不行吗?请指点。谢谢。

------解决方案--------------------
把int换成long,已经int 的最大值了