zoukankan      html  css  js  c++  java
  • webapi获取IP的方式

    using System.Net.Http;
    
    public static class HttpRequestMessageExtensions
    {
        private const string HttpContext = "MS_HttpContext";
        private const string RemoteEndpointMessage =
            "System.ServiceModel.Channels.RemoteEndpointMessageProperty";
        private const string OwinContext = "MS_OwinContext";
    
        public static string GetClientIpAddress(this HttpRequestMessage request)
        {
           // Web-hosting. Needs reference to System.Web.dll
           if (request.Properties.ContainsKey(HttpContext))
           {
               dynamic ctx = request.Properties[HttpContext];
               if (ctx != null)
               {
                   return ctx.Request.UserHostAddress;
               }
           }
    
           // Self-hosting. Needs reference to System.ServiceModel.dll. 
           if (request.Properties.ContainsKey(RemoteEndpointMessage))
           {
                dynamic remoteEndpoint = request.Properties[RemoteEndpointMessage];
                if (remoteEndpoint != null)
                {
                    return remoteEndpoint.Address;
                }
            }
    
           // Self-hosting using Owin. Needs reference to Microsoft.Owin.dll. 
           if (request.Properties.ContainsKey(OwinContext))
           {
               dynamic owinContext = request.Properties[OwinContext];
               if (owinContext != null)
               {
                   return owinContext.Request.RemoteIpAddress;
               }
           }
    
            return null;
        }
    }

    References required:

    • HttpContextWrapper - System.Web.dll
    • RemoteEndpointMessageProperty - System.ServiceModel.dll
    • OwinContext - Microsoft.Owin.dll (you will have it already if you use Owin package)

    第二种:
    ((System.Web.HttpContextWrapper)Request.Properties["MS_HttpContext"]).Request.UserHostAddress;
  • 相关阅读:
    HihoCoder1371
    Intern Day23
    腾讯移动客户端开发暑期实习一面笔试
    C++
    朱丹为什么是文艺青年
    金数据一个不错的调查平台
    单反手动对焦M档,AV,TV,P,A,A-DEP
    chrome不支持字体12px
    火狐解决字体模糊
    《程序员的自我修养》阅读笔记(四):
  • 原文地址:https://www.cnblogs.com/damsoft/p/6059434.html
Copyright © 2011-2022 走看看