c# 取得clientIP 跟驗證IP

  • 1386
  • 0

取得IP跟驗證IP

取得客戶端IP

 
        protected string GetClientIP()
        {
            System.Web.HttpContext context = System.Web.HttpContext.Current;

            //判所client端是否有設定代理伺服器
            if (context.Request.ServerVariables["HTTP_VIA"] == null)
                return context.Request.ServerVariables["REMOTE_ADDR"].ToString();
            else
                return context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
        }

驗證IP是否正確

using System.Text.RegularExpressions;

  public bool IsValidIP(string addr)

        {

            //create our match pattern

            string pattern = @"^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$";

            //create our Regular Expression object

            Regex check = new Regex(pattern);

            //boolean variable to hold the status

            bool valid = false;

            //check to make sure an ip address was provided

            if (addr == "")

            {

                //no address provided so return false

                valid = false;

            }

            else

            {

                //address provided so use the IsMatch Method

                //of the Regular Expression object

                valid = check.IsMatch(addr, 0);

            }

            //return the results

            return valid;

        }

使用方式

        [WebMethod]
       
        public bool IpDEMO()
        {
            string clientIP = GetClientIP();
            bool result = IsValidIP(clientIP);
            return result;

        }