永发信息网

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

答案:2  悬赏:70  手机版
解决时间 2021-01-28 22:27
WebApi中,怎么获取接口调用者的外网ip地址
最佳答案
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;
}
全部回答
不是默认的 wsdl 都会给一个 transport 的地址么,那个 url 中应该有地址,当然可能不是 ip 而是服务器域名,当然也有可能人家没有把 url 直接写在 wsdl 中,但会另外在文档中告诉你 url 地址。你为什么需要知道 ip 地址而不直接用域名? 从分布式的松耦合设计中我们了解到,客户端应该只看 wsdl 再加上额外提供的可选的 url (如果 wsdl 中没有提供这个 transport 配置的话)就应该可以完成与服务器的数据交换,不再需要其它条件。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
这是一个脑筋急转弯 小明和小红玩石头剪刀布
朋岩村向开敏去哪里了。以前比较出名。怎么现
维纳斯名媛养生会所地址有知道的么?有点事想
三哥发艺怎么去啊,我要去那办事
盛源养生馆地址有知道的么?有点事想过去
哪有趣味的记单词软件
要写一句口号 有“起点”二字在内的押韵的
古代工笔注重什么
介个…我真的找不到这个“synaptics TouchPad
转成都户口问题
兰香美颜地址在什么地方,我要处理点事
信息时代的来临不仅改变着人们的生产方式和生
《隋唐英雄》中,杨广叫李渊造宫殿,早好后又
小黄美容休闲中心地址好找么,我有些事要过去
百度造型地址在什么地方,我要处理点事
推荐资讯
股市中说的“击鼓传花”是什么意思?
徐州矿大有哪些专业啊?
哪种抗生素效果最好
十万个为什么是与什么有关的书
青岛M2地铁线路 汽车东站出站口在什么位置
乐中嘉橱柜地址有知道的么?有点事想过去
六横镇龙山社区龙浦老年人协会地址好找么,我
东方博艾艾灸养生(中山旗舰馆)地址在哪,我要
请问罗汉鱼多大才起头
金鑫大酒店停车场(出入口)(奢香大道北段附近
川主寺卓仓商务酒店怎么去啊,我要去那办事
如图表示淀粉、脂肪和蛋白质在消化道中各部位
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?