gpt4 book ai didi

azure - 如何使用.net Core获取传入请求的ip地址

转载 作者:行者123 更新时间:2023-12-05 04:10:15 25 4
gpt4 key购买 nike

我在 AZURE 环境 (PAAS) 中部署了 .NET CORE 解决方案。我使用以下代码片段来获取客户端的 IP 地址

 dtoItem.LogIP = HttpContext.Connection.RemoteIpAddress.ToString();

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

app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto,
RequireHeaderSymmetry = false,
});

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

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

最佳答案

是否可以在PAAS解决方案中获取私有(private)IP地址?

No it is not possible as shared in this SO post and this answer address this about MACAddress

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

如果不可能,是否有办法跟踪客户的电脑信息。 (如IP地址、MAC地址)?

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

If you are looking for browser finger printing or tracking ,have a look at Panopticlick which shows some more information like fonts > installed, screen resolution,plugins installed etc to track any client. fingerprintjs2 javascript library helps to track using 26 parameters as of today

关于azure - 如何使用.net Core获取传入请求的ip地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44756053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com