管理员IP匹配方法

 1 //最终方法
 2 
 3 
 4 
 5         public static bool GetAdminLoginIP(string LoginIp)
 6         {
 7             List<MasterModel> list = null;
 8             list = (List<MasterModel>)Utility.MakeCacheAll[Common.Constraints.C_ADMINUSERLOGINIP];
 9             if (list != null)
10             {
11                 foreach (MasterModel model in list)
12                 {
13                     if (model.Name == "*.*.*.*")//全部IP允许
14                     {
15                         return true;
16                     }
17                     else if (model.Name == LoginIp)//允许IP正好存在当前IP
18                     {
19                         return true;
20                     }
21                     else //开始匹配IP
22                     {
23                         int flag = 0;//成功匹配次数 开始默认为0
24                         string[] loginIPArray = LoginIp.Split('.');//登录IP
25                         string[] strIP = model.Name.Split('.');//允许IP
26                         for (int i = 0; i < 4; i++)
27                         {
28                             if (strIP[i] != "*")
29                             {
30                                 if (strIP[i] == loginIPArray[i])
31                                 {
32                                     flag += 1;//如果IP段匹配成功匹配次数+1
33                                 }
34                                 else
35                                 {
36                                     flag = 0;//匹配失败 匹配次数归0 并跳出当前循环
37                                     break;
38                                 }
39                             }
40                             else
41                             {
42                                 flag += 1;//*段默认匹配成功 匹配次数+1
43                             }
44                         }
45                         if (flag == 4)//匹配成功
46                         {
47                             return true;
48                         }
49                         //else
50                         //{
51                         //    continue;//跳出当前循环 进行下次循环
52                         //}
53                     }
54                 }
55                 return false;
56             }
57             return false;
58         }

 

posted @ 2012-08-10 18:38  狄大人  阅读(443)  评论(0编辑  收藏  举报