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 }