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;webapi获取IP的方式的更多相关文章
- java获取ip的方式,注意多级代理的方式获取
		public String getIP() { String clientIP = ServletActionContext.getRequest().getHeader("x-forwar ... 
- VMware桥接模式无法自动化获取IP的解决方法
		虚拟机桥接无法自动获取IP的解决方法 在虚拟机VM里面装了centos系统,网卡选用桥接方式. 刚开始的时候还能自动获取到IP地址,突然有一天IP消失了,再怎么重启都无法获取IP地址.因为之前是可以获 ... 
- PXE DHCP获取IP与传统DHCP获取IP地址的区别
		正常的DHCP获取IP的流程(Discover-Offer-Request-Ack): (Discovery)主机端在LAN中发布MAC地址为FF:FF:FF:FF:FF:FF的广播来寻找DHCP服务 ... 
- 获取Ip地址
		public static string GetClientIPv4Address() { string ipv4 = String.Empty; foreach (IPAddress ip in D ... 
- PHP获取IP地址
		获取客户端IP地址:: function getIp(){ if(!empty($_SERVER['HTTP_CLIENT_IP'])){ return $_SERVER['HTTP_CLIENT_I ... 
- 两种获取connectionString的方式
		两种获取connectionString的方式 1. public static string connectionString = ConfigurationManager.ConnectionSt ... 
- [解决]Kali Linux DHCP自动获取IP失败 坑爹的VMWare桥接
		root@kali:~# service networking restart [....] Running /etc/init.d/networking restart is deprecated ... 
- [转]详述DHCP服务器的三种IP分配方式
		DHCP就是动态主机配置协议(Dynamic Host Configuration Protocol),它的目的就是为了减轻TCP/IP网络的规划.管理和维护的负担,解决IP地址空间缺乏问题.这种网络 ... 
- Oracle VM Virtual 下CentOS不能自动获取IP地址
		在CentOS配置网卡开机自动获取IP地址: vi /etc/sysconfig/network-scripts/ifcfg-eth0 将 ONBOOT="no" 改为 ONBOO ... 
随机推荐
- Java GC回收机制
			优秀Java程序员必须了解的GC工作原理 一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只 ... 
- ASP.NET MVC的Web Api的实练
			学习ASP.NET MVC一年多来,现在该学学Web Api了.API与ASP.NET MVC的Controller差不多.前者只是返回数据序列化和发送给客户端: 后者返回View或Render Vi ... 
- 转 FileStream Read File
			FileStream Read File [C#] This example shows how to safely read file using FileStream in C#. To be s ... 
- NET Core HTTP 管道
			ASP.NET Core HTTP 管道中的那些事儿 前言 马上2016年就要过去了,时间可是真快啊. 上次写完 Identity 系列之后,反响还不错,所以本来打算写一个 ASP.NET Cor ... 
- [TED] New video technology that reveals an objects hidden properties
			通过视频中,即使1微米的震动,都能够还原成声音. 程序算法结合基础学科,能够发挥出接近无限的力量, 深入挖掘物理特性,形成你想都想不到的效果. 很多技术你都不知道,怎么和国家对抗?所以还是要遵纪守法 ... 
- 基于SignalR的小型IM系统
			这个IM系统真是太轻量级了,提供的功能如下: 1.聊天内容美化 2.用户上下线提示 3.心跳包检测机制 4.加入用户可群聊 下面来一步一步的讲解具体的制作方法. 开篇准备工作 首先,巧妇难为无米之炊, ... 
- Nodejs进阶:如何玩转子进程(child_process)
			本文摘录自个人总结<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 在node中,child_process这个模 ... 
- 理解Android虚拟机体系结构
			1 什么是Dalvik虚拟机 Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的 ... 
- 【python游戏编程之旅】第九篇---嗷大喵快跑小游戏开发实例
			本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 前几期博客我们一起学习了,pygame中的冲突检测技术以及一些常用的数据结构. 这次我们来一起做一个简单的酷 ... 
- 20140207 - Java and Mac OS X Retina
			在Mac下使用文件管理工具类似Total Commander的muCommander,muCommander的编写语言是Java,打开后发现Java不兼容Mac Retina. muCommander ... 
