zoukankan      html  css  js  c++  java
  • .netcore 获取请求客户端IP

      

          /// <summary>
            /// 获取客户Ip
            /// </summary>
            /// <param name="context"></param>
            /// <returns></returns>
            public static string GetClientUserIp(this HttpContext context)
            {
                var userHostAddress = context.Request.Headers["X-Forwarded-For"].FirstOrDefault();
                if (string.IsNullOrEmpty(userHostAddress))
                {
                    userHostAddress = context.Connection.RemoteIpAddress.ToString();
                }
    
                //最后判断获取是否成功,并检查IP地址的格式(检查其格式非常重要)
                if (!string.IsNullOrEmpty(userHostAddress) && IsIP(userHostAddress))
                {
                    return userHostAddress;
                }
                return "127.0.0.1";
            }
            
            /// <summary>
            /// 检查IP地址格式
            /// </summary>
            /// <param name="ip"></param>
            /// <returns></returns>
            public static bool IsIP(string ip)
            {
                return System.Text.RegularExpressions.Regex.IsMatch(ip, @"^((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)$");
            }

      在startup.cs中Configure方法,添加如下:

           #region 解决Ubuntu Nginx 代理不能获取IP问题
                app.UseForwardedHeaders(new ForwardedHeadersOptions
                {
                    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
                });
                #endregion

      调用方法:

            [HttpPost("publish")]
            public WebApiResult TaskPublish(UserInfo request)
            {
    
                string ip =GetClientUserIp(HttpContext.Request.HttpContext);

       

  • 相关阅读:
    Android 系统广播机制
    NBUT 1457 Sona (莫队算法)
    内存分配--静态内存、栈和堆
    Hibernate主键生成策略
    UVA 1482
    servlet开篇
    C语言的代码内存布局具体解释
    Mirantis Fuel fundations
    openstack中文文档
    C++ 之再继续
  • 原文地址:https://www.cnblogs.com/personblog/p/14661627.html
Copyright © 2011-2022 走看看