我们必须Request.UserHostAddress在ASP.NET中获取IP地址,但这通常是用户的ISP的IP地址,而不是用户的机器IP地址,例如单击链接.我怎样才能获得真实的IP地址?
例如,在Stack Overflow用户配置文件中,它是:"上次帐户活动:4小时前从86.123.127.8",但我的机器IP地址有点不同.Stack Overflow如何获得此地址?
在某些Web系统中,存在用于某些目的的IP地址检查.例如,使用某个IP地址,用户每24小时只能点击5次下载链接?此IP地址应该是唯一的,不适用于拥有大量客户端或Internet用户的ISP.
我理解得好吗?
我理解这是看待这两个变量的标准做法.当然,他们很容易被欺骗.我很好奇你多久会期望这些价值观(特别是那些HTTP_X_FORWARDED_FOR)包含真实的信息,而不仅仅是被扰乱或者剥夺了他们的价值观?
有这方面经验或统计数据的人吗?
获取客户端IP地址的任务还有什么用处吗?
我正在为我的组织开发内部图书馆。我需要引用通常“属于”网络应用程序的某些类型,例如。提供一些扩展:
WebApplicationOptionsHttpContext如果我使用<Project Sdk="Microsoft.NET.Sdk">,我没有对这些类型的引用,也找不到包含它们的任何 nuget 包。如果我使用<Project Sdk="Microsoft.NET.Sdk.Web">,我无法构建我的类库,因为它被视为应用程序并且必须指定入口点。
所以,我的一般问题是:为 ASP.NET Core 6 编写库的正确方法是什么?
回到 core 2.x 时代,所有东西都有软件包,比如Microsoft.AspNetCore.Http.Abstractions. 它们都停留在版本上2.2.0,我认为它们现在无法使用?
在我的网卡的属性部分,在Windows Server 2008上,我禁用了IPV6,只启用了IPV4.
但是在ASP.NET中,Request.UserHostAddress返回':: 1',即IPV6地址.
有谁知道如何恢复到IPV4?
什么是旧的Asp.Net 5中的等价物HttpContext.Request.UserHostAddress?
我试过this.ActionContext.HttpContext但找不到UserHostAddress和ServerVariables属性.
谢谢
我正在使用Microsoft Visual Studio 2017提供的Angular模板开发ASP.Net Core 2.1.我的客户端应用程序工作正常.在用户认证竞争之后,我想启动用户会话管理,其中我存储客户端用户IP地址.我已经在互联网上搜索过这个,但到目前为止还没有找到任何解决方案.
以下是我访问过的一些参考链接:
在我的ValuesController.cs中,我也试过下面的代码:
private IHttpContextAccessor _accessor;
public ValuesController(IHttpContextAccessor accessor)
{
_accessor = accessor;
}
public IEnumerable<string> Get()
{
var ip = Request.HttpContext.Connection.RemoteIpAddress.ToString();
return new string[] { ip, "value2" };
}
Run Code Online (Sandbox Code Playgroud)
其中ip变量我得到空值并得到此错误
Request.HttpContext.Connection.RemoteIpAddress.Address引发了Type'System.Net.Sockets.SocketException'的异常
你能告诉我如何在ASP.NET Core 2.1中获取客户端IP地址吗?
我想读取X-Forwarded-For请求中标头值的值.
我试过了
HttpContext.Current.Request.Headers["X-Forwarded-For"].Split(new char[] { ',' }).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
在C#中.
或者我需要拆分标头":"并取第二个字符串吗?维基百科说,我这是在问这个问题
该字段的一般格式为:X-Forwarded-For:client1,proxy1,proxy2
IP 地址等。通常,当用户询问如何在 Server Blazor 应用程序中执行此操作时,他们要么被告知这是不可能的,要么有时会提供使用 JSInterop 的部分解决方案。但是可以在不诉诸 JSInterop 的情况下完成吗?这是答案...
我试图通过IP地址限制网站.在以前的MVC版本中,我会在web.config中添加如下内容:
<security>
<ipSecurity allowUnlisted="false" denyAction="NotFound">
<add allowed="true" ipAddress="XX.XX.XX.XX" subnetMask="255.255.255.0"/>
</ipSecurity>
</security>
Run Code Online (Sandbox Code Playgroud)
但是将此添加到AspNetCore项目会导致应用程序在启动时因错误而失败
无法启动进程Web服务器请求失败,状态码为500,内部服务器错误
显然我打破了配置,因为它不再在这里处理了.该错误产生一个HttpFailure日志,如下所示:
什么是现在处理这个问题的最好方法,内置或其他方式
如何在 Blazor 服务器端获取客户端信息,例如 IP 地址和浏览器名称/版本?
c# ×6
asp.net ×4
asp.net-core ×4
blazor ×2
ip-address ×2
.net-core ×1
client ×1
http ×1
http-headers ×1
ip ×1
ipv4 ×1
ipv6 ×1
libraries ×1
package ×1