在OwinSelfHost项目中获取客户端IP地址
在OwinSelfHost项目中,获取客户端的IP地址可以通过以下方法获得:
- base.Request.GetOwinContext().Request.RemoteIpAddress
创建一个OwinSelfHost项目的大概过程:
- 创建名称为OwinSelfHostSample的Windows窗体应用(.NET Framework)项目;
- 重命名Form1为MainForm;
- 在NuGet包管理器中添加中添加Microsoft.AspNet.WebApi.OwinSelfHost;
- 添加Startup类;
- 添加控制器类MainController。
各个类的代码如下:
- Program
1 using System;
2 using System.Windows.Forms;
3
4 namespace OwinSelfHostSample
5 {
6 internal static class Program
7 {
8 [STAThread]
9 static void Main()
10 {
11 Application.EnableVisualStyles();
12 Application.SetCompatibleTextRenderingDefault(false);
13 Application.Run(new MainForm());
14 }
15 }
16 }
- Startup
1 using Owin;
2 using System.Net.Http.Headers;
3 using System.Web.Http;
4
5 namespace OwinSelfHostSample
6 {
7 internal class Startup
8 {
9 public void Configuration(IAppBuilder appBuilder)
10 {
11 var config = new HttpConfiguration();
12 config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{action}/{id}", new { id = RouteParameter.Optional });
13
14 appBuilder.UseWebApi(config);
15 }
16 }
17 }
- MainController
1 using System.Net.Http;
2 using System.Web.Http;
3
4 namespace OwinSelfHostSample
5 {
6 public class MainController : ApiController
7 {
8 [HttpGet, HttpPost]
9 public IHttpActionResult GetClientIp()
10 {
11 var result = base.Request.GetOwinContext().Request.RemoteIpAddress;
12 return Ok(result);
13 }
14 }
15 }
- MainForm
1 using Microsoft.Owin.Hosting;
2 using System;
3 using System.Windows.Forms;
4
5 namespace OwinSelfHostSample
6 {
7 internal partial class MainForm : Form
8 {
9 public MainForm()
10 {
11 this.InitializeComponent();
12 }
13
14 private void button1_Click(object sender, EventArgs e)
15 {
16 WebApp.Start<Startup>("http://127.0.0.1:8090");
17 this.button1.Enabled = false;
18 }
19 }
20 }
- packages.config
1 <?xml version="1.0" encoding="utf-8"?>
2 <packages>
3 <package id="Microsoft.AspNet.WebApi.Client" version="6.0.0" targetFramework="net48" />
4 <package id="Microsoft.AspNet.WebApi.Client.zh-Hans" version="6.0.0" targetFramework="net48" />
5 <package id="Microsoft.AspNet.WebApi.Core" version="5.3.0" targetFramework="net48" />
6 <package id="Microsoft.AspNet.WebApi.Core.zh-Hans" version="5.3.0" targetFramework="net48" />
7 <package id="Microsoft.AspNet.WebApi.Owin" version="5.3.0" targetFramework="net48" />
8 <package id="Microsoft.AspNet.WebApi.Owin.zh-Hans" version="5.3.0" targetFramework="net48" />
9 <package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.3.0" targetFramework="net48" />
10 <package id="Microsoft.Owin" version="4.2.2" targetFramework="net48" />
11 <package id="Microsoft.Owin.Host.HttpListener" version="4.2.2" targetFramework="net48" />
12 <package id="Microsoft.Owin.Hosting" version="4.2.2" targetFramework="net48" />
13 <package id="Newtonsoft.Json" version="13.0.3" targetFramework="net48" />
14 <package id="Newtonsoft.Json.Bson" version="1.0.2" targetFramework="net48" />
15 <package id="Owin" version="1.0" targetFramework="net48" />
16 <package id="System.Buffers" version="4.5.1" targetFramework="net48" />
17 <package id="System.Memory" version="4.5.5" targetFramework="net48" />
18 <package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" />
19 <package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net48" />
20 <package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net48" />
21 </packages>
在OwinSelfHost项目中获取客户端IP地址的更多相关文章
- 在ASP.NET Core中获取客户端IP地址
随着ASP.NET的发展,有不同的方式从请求中访问客户端IP地址.WebForms和MVC Web应用程序只是访问当前HTTP上下文的请求. var ip = HttpContext.Current. ...
- 在ASP.NET Core 2.x中获取客户端IP地址
一.前言 大家也知道服务端请求时我们获取的IP地址是包含在请求头中,因此这也大大便利了IP的获取. 在ASP.NET中,可以通过以下方式获取客户端的IP地址. HttpContext.Current. ...
- 再论 ASP.NET 中获取客户端IP地址
说到IP获取无非是我们常见的以下几种方式,但是具体获取的值具体区别在哪?网上不乏相关文章,说的也是很详细,但是真正使用起来,还有很多不太对的地方.IP在不同系统中,应用相当广泛,常见的日志记录.广告分 ...
- vue中获取客户端IP地址(不需要额外引入三方文件)
之前看了几种方法 ,都是引入腾讯,新浪,搜狐等的三方js文件来查询IP地址,但是我自己测试的时候IP地址不准确,所以就找了找,发现了这个方法,准确的获取到了IP地址和cmd的ipconfig获取到的I ...
- 集群环境下JSP中获取客户端IP地址的方法
String ip = request.getHeader("X-Forwarded-For");if (ip == null || ip.length() == 0 || &qu ...
- (转)【ASP.NET开发】获取客户端IP地址 via C#
[ASP.NET开发]获取客户端IP地址 via C# 说明:本文中的内容是我综合博客园上的博文和MSDN讨论区的资料,再通过自己的实际测试而得来,属于自己原创的内容说实话很少,写这一篇是为了记录自己 ...
- 获取客户端IP地址 via C#
获取客户端IP地址 via C# 说明:本文中的内容是我综合博客园上的博文和MSDN讨论区的资料,再通过自己的实际测试而得来,属于自己原创的内容说实话很少,写这一篇是为了记录自己在项目中做过的事情,同 ...
- 在Thinkphp3.2.3框架下实现自动获取客户端IP地址的get_client_ip()函数
在Thinkphp框架下使用get_client_ip()函数获取客户端IP地址十分方便: 一行代码便可以实现:$ip = get_client_ip(); 但当我们测试时会遇到后台获取的IP地址显示 ...
- JAVA获取客户端IP地址
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...
- C# WebApi 获取客户端ip地址
转自:http://www.cnblogs.com/weixing/p/5674078.html References required: HttpContextWrapper - System.We ...
随机推荐
- Linux备忘手册
资料来源:技术胖 jspang.com 下载linux学习路径:https://newimg.jspang.com/linux-image01.png Linux备忘手册: 百度网盘 链接:https ...
- 磁盘空间满了报错cannot create temp file for here-document: No space left on device
如下:虚拟机设置的存储空间是20G,.目前用到100%了.执行命令会报错设备没有空间 我想删除镜像释放空间,也无法操作 分级找到文件,但是不知道删除哪个 退出的容器都找不到了 把昨天下午弄的删了 容器 ...
- vue3.4中KeepAlive的一个bug
KeepAlive可以缓存组件,在不使用include时没有任何问题,可以正常缓存. 但是一旦使用了include,如果动态组件中没有导入ref函数,缓存功能就消失了 比如 editcom.vue & ...
- WPF开发快速入门【3】WPF的基本特性(附加属性)
概述 本文描述WPF的附加属性.对于使用MVVM框架的项目,附加属性是非常重要的一个特性. 在MVVM框架下,ViewModel的代码通过控件的依赖属性来控制控件的,例如: //ViewModel p ...
- openssl升级nginx升级支持openssl http2
mkdir -p /usr/local/openssl #wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz tar -xf opens ...
- docker离线安装
1. yum安装 #源添加 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo ...
- xshell 自动断开连接的解决方法
1. 问题分析 本文Xshell连接自动断开的原因是SSH配置文件的ClientAliveInterval字段设置的超时断开时间小于Xshell的检查断开连接时间. 2. SSH配置文件中的字段详解 ...
- 震惊!docker镜像还有这些知识你都知道吗
震惊!docker镜像还有这些知识你都知道吗? 镜像搜索 语法 [root@hmm docker-hello]# docker search -h Flag shorthand -h has been ...
- 如何保留 Excel 表头和第一行数据并追加 CSV 数据
准备工作 在开始之前,确保你的 Python 环境中已经安装了 openpyxl 和 pandas 库.可以使用以下命令进行安装: pip install openpyxl pandas 第一步:编写 ...
- C#.NET 操作FTP
工具类: using System; using System.Collections.Generic; using System.IO; using System.Net; namespace Co ...