首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用.net内核获取传入请求ip地址

如何使用.net内核获取传入请求ip地址
EN

Stack Overflow用户
提问于 2017-06-26 16:53:39
回答 2查看 1.2K关注 0票数 2

我在AZURE环境(PAAS)中部署了我的.NET核心解决方案.I在那里使用了以下代码片段来获取客户端的ip地址

代码语言:javascript
复制
 dtoItem.LogIP = HttpContext.Connection.RemoteIpAddress.ToString();

我使用了标准的.net核心库,并对Startup.cs进行了必要的更改

代码语言:javascript
复制
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto,
    RequireHeaderSymmetry = false,
});

我相信我已经以正确的方式实现了一切。但是我仍然没有得到准确的客户端IP地址。我总是得到客户的公网IP,而不是他的内网IP。因为这可以重复(同一个办公室2个用户有相同的公网IP),所以我需要客户的内网IP而不是他的公网IP。

在PAAS解决方案中是否可以获取内网IP地址。如果不可能,有没有办法跟踪客户的PC信息。(例如IP地址、MAC地址)。

EN

回答 2

Stack Overflow用户

发布于 2017-06-26 23:04:46

对于这个问题,没有直接的答案。Rob分享的帖子有一些很好的见解。然而,需要理解的是,在请求到达服务器之前,请求可能会发生很多事情。中间网络设备可以操作TCP报头,因此它可能无法反映您需要的正确IP地址。

从解决方案的角度来看,这可能是完全可能的,如果您开发自己的客户端,并将此信息记录在某个地方,以便您可以跟踪它。否则,就没有可靠的方法来获取此信息。

票数 1
EN

Stack Overflow用户

发布于 2017-06-27 15:00:52

PAAS方案可以获取内网IP地址吗?

否无法在此SO post和此answer中共享此关于MACAddress的地址

在客户端javascript上,没有公开的API来获取IPAddress (显然是出于安全考虑) .Then你可以在服务器端获取Ipaddress,但通常如果你从公司访问互联网,它将通过公司代理,服务器看到的IP地址永远不会是实际的客户端IP,而是代理服务器的地址。因此,这在服务器端是有限的,因为服务器只能看到代理(公共IP地址)。

如果不可能,有没有办法跟踪客户的PC信息。(例如IP地址、MAC地址)?

您可以可靠地跟踪的是用户代理。分解用户代理,我们得到关于浏览器、操作系统版本的some信息。但是用户代理很容易被一些浏览器扩展欺骗。

如果你正在寻找浏览器指纹或跟踪,可以看看Panopticlick,它显示了更多信息,如字体>安装,屏幕分辨率,安装的插件等,以跟踪任何客户端。从今天的

开始,fingerprintjs2 javascript库可以帮助track using 26 parameters

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44756053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档