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 }
转载于:https://www.cnblogs.com/LYunF/archive/2012/08/10/2632419.html