C# .Net 判斷IP地址是否符合某IP段技巧
阿新 • • 發佈:2020-10-21
在YuebonCore快速開發框架開源專案中涉及到當前登入使用者登入IP是否被禁止登入訪問系統,獲取登入IP後怎麼去判斷過濾呢?我們採用將IP地址轉為Int32數字型,然後去判斷大小。
Sql severIP地址轉int型
cast(replace(StartIP,'.','') as bigint)
獲取當前使用者IP地址字串轉int型
int ipv = ip.Replace(".", "").ToInt();
綜合起來方法如下:
/// <summary> /// 驗證IP地址是否被拒絕 /// </summary> /// <param name="ip"></param> /// <returns></returns> public bool ValidateIP(string ip) { long ipv = ip.Replace(".", "").ToLong(); string where = " (cast(replace(StartIP,'.','') as bigint)>=" + ipv + " and cast(replace(EndIP,'.','') as bigint)<=" + ipv + ") and FilterType=0 and EnabledMark=1"; int count = GetCountByWhere(where); return count > 0 ? true : false; }
號外:
YuebonCore是基於.NetCore3.1開發的許可權管理及快速開發框架
開源地址:https://gitee.com/yuebon/YuebonNetCore
大家對此問題有什麼好的方法呢?評論區討論。