• 管理员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         }
  • 相关阅读:
    vim 从嫌弃到依赖(15)——寄存器
    vim 从嫌弃到依赖(14)——快速跳转
    linux中查看MySQL数据库表数据及结构
    自定义MVVM 测试
    IO流
    Spring Cache
    Solr搜索
    Charles 下载并激活
    nginx和java示例
    pip freeze > requirements不适用于anaconda
  • 原文地址:https://www.cnblogs.com/LYunF/p/2632419.html
Copyright © 2020-2023  润新知