首页 > 其他分享 >在OwinSelfHost项目中获取客户端IP地址

在OwinSelfHost项目中获取客户端IP地址

时间:2024-07-04 22:33:19浏览次数:18  
标签:11 10 OwinSelfHost System OwinSelfHostSample IP地址 using 客户端

在OwinSelfHost项目中,获取客户端的IP地址可以通过以下方法获得:

  • base.Request.GetOwinContext().Request.RemoteIpAddress

创建一个OwinSelfHost项目的大概过程:

  • 创建名称为OwinSelfHostSample的Windows窗体应用(.NET Framework)项目;
  • 在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>

标签:11,10,OwinSelfHost,System,OwinSelfHostSample,IP地址,using,客户端
From: https://www.cnblogs.com/yiluxiangdong/p/18284802

相关文章

  • Java SSH 客户端 如何删除 linux 机器上的 文件
    在Java中,可以使用SSH客户端库如JSch(JavaSecureChannel)来连接到远程Linux机器并执行命令,包括删除文件。下面是一个使用JSch库的示例,展示如何通过SSH删除远程Linux机器上的文件。步骤:添加JSch库:确保您的项目包含JSch库。如果您使用的是Maven,可以在pom.xml......
  • 安装mycli插件客户端工具
    客户端工具和mysql点击查看代码[root@localhostopt]#yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devellibffi-devel[root@localhostopt]#tarzxvfPython-3.7.7_.tg......
  • 关于巴图自动化Profinet协议转Modbus协议网关模块怎么配置IP地址教学
    Profinet协议和Modbus协议是工业领域中常用的两种通讯协议,除此以外还有较为常见的:ModbusTCP协议,Profibus协议,ProfibusDP协议,EtherCAT协议,EtherNET协议,CAN,CANOPEN等它们在自动化控制系统中发挥着重要作用。而将Profinet协议和Modbus协议这两种协议设备进行连接的关键就是通过巴图......
  • Linux下使用arping检测IP地址是否冲突
    arping简介在Linux中,arping是一个用来发送ARP请求到一个相邻主机的工具,通常用于检测网络上的IP地址冲突。使用arping检测IP地址是否冲突的方法例1:使用如下命令检测10.206.216.95是否冲突(使用-I参数指定网络接口)#arping-Ieth010.206.216.95ARPING10.206.216.95......
  • 客户端渗透
    1.一键可执行程序2.给程序加壳3.宏病毒感染文档4.Androidapk利用1.一键可执行程序介绍:我们要进行客户端渗透,我们生成一个可执行程序,也是简单粗暴,MSF建立监听,把它发给受害者,只要受害者点击,监听机监听的机器直接上线(现在这种方法一般不会成功,杀毒软件会直接杀掉,这个程序......
  • CocosCreator客户端优化系列:CPU占用及性能优化
    CocosCreator客户端优化系列(四):CPU占用及性能优化转载请保留原文链接:https://blog.csdn.net/zzx023/article/details/88991314这篇文章是优化系列的最后一篇了,内容会长一些,更多的是提供一些方向以及思路,具体的一些细节由于篇幅有限,就不一一说明了,只要找对方向,就可以慢慢研究。希望......
  • Hyper-V虚拟机固定IP地址(手把手教设置)
    链接虚拟机修改网络配置文件输入指令sudovi/etc/sysconfig/network-scripts/ifcfg-eth0然后输入 按 i 键再按回车(enter)进入编辑模式修改配置(这几项)其中 IPADDR就是你想给虚拟机固定的IP地址多台的话只需要修改这个IP就行其他不变BOOTPROTO=staticI......
  • nginx配置获取客户端的真实ip
    https://blog.csdn.net/superzhang6666/article/details/132901093 对于nginx获取客户端真实ip做个总结对于首层代理服务器,使用proxy_set_headerX-Forwarded-For$remote_addr;来将客户端IP赋值给X-Forwarded-For请求头对于非首层代理服务器,使用proxy_set_headerX-Forwarded......
  • 校验IP地址格式:IPv4、IPv6、IP/掩码和IP段
    校验IP地址格式:IPv4、IPv6、IP/掩码和IP段https://www.jianshu.com/p/95d51e51cc2eIPv4格式验证IPv4是32位地址,由四个十进制数(0-255)组成,以点分隔。以下是一个IPv4地址的示例:192.168.0.1。要验证输入是否符合IPv4格式,我们可以使用正则表达式进行匹配。下面是一个JavaScript......
  • 【AKS+Redis】AKS中客户端(ioredis)遇见Azure Redis服务Failover后链接中断的可能性
    问题描述在AKS中连接Redis,当遇到AzureRedis升级或者Failover时,NodeJS应用中使用ioredissdk在很长一段时间内无法恢复和AzureRedis服务端的连接,对于这种想象的可能性推断。 问题解答使用AzureCacheforRedis时,一个服务器是主节点,另一个服务器是副本。主节点通常负......