1. 程式人生 > 實用技巧 >C# .Net 判斷IP地址是否符合某IP段技巧

C# .Net 判斷IP地址是否符合某IP段技巧

在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

官方文件:http://docs.v.yuebon.com

大家對此問題有什麼好的方法呢?評論區討論。