WebApi中,怎么获取接口调用者的外网ip地址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebApi中,怎么获取接口调用者的外网ip地址相关的知识,希望对你有一定的参考价值。

参考技术A It's possible to do that, but not very discoverable - you need to use
the property bag from the incoming request, and the property you need
to access depends on whether you're using the Web API under IIS
(webhosted) or self-hosted. The code below shows how this can be done.

private string GetClientIp(HttpRequestMessage request)

if (request.Properties.ContainsKey("MS_HttpContext"))

return ((HttpContextWrapper)request.Properties["MS_HttpContext"]).Request.UserHostAddress;


if (request.Properties.ContainsKey(RemoteEndpointMessageProperty.Name))

RemoteEndpointMessageProperty prop;
prop = (RemoteEndpointMessageProperty)request.Properties[RemoteEndpointMessageProperty.Name];
return prop.Address;


return null;

用Linux命令行获取本机外网IP地址

引言:目前获取ip的方法中,ifconfig和ip获取函数得到的都是内网ip。有时候需要获取外网ip,目前通用的做法,是向外部服务器发送请求,解析外部服务器响应,从而得到的自己的外网ip。linux下的 curl可以替我们完成这些工作,当然,不怕麻烦的话,可以自己分析http协议,自己实现以上过程。如果熟悉python的话,那就更简单了,就像我们所知道的,python总是有现成的库函数可供我们调用。一下总结几种获取外网ip的方法,以供查询,资料来源互联网。

 

$ curl ip.cn
$ curl ifconfig.me (目前已经失效)
$ curl ident.me  又可细分为 v4.ident.me 和 v6.ident.me
$ curl icanhazip.com
$ curl ipecho.net/plain
$ curl whatismyip.akamai.com
$ curl myip.dnsomatic.com
$ curl icanhazip.com
$ curl ip.3322.net
$ curl ip.6655.com/ip.aspx

 

 

如果需要返回IP和地区以及运营商的话可以使用:

$ curl cip.cc   ------>纯IP的话  $ curl  ip.cip.cc    (http://www.cip.cc/) 推荐
$ curl ip.6655.com/ip.aspx?area=1

 

以上是关于WebApi中,怎么获取接口调用者的外网ip地址的主要内容,如果未能解决你的问题,请参考以下文章

如何在公司知道自己家路由器的外网IP地址

C#如何在页面中获取本机的外网IP地址

怎样查自己家里电脑的外网IP

java中如何获取到本机的外网ip地址?

C# 获取本机外网IP

请问 C# 如何获取外网IP?