我们必须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.
我理解得好吗?
使用C#或其他.NET语言确定文件路径字符串是在本地计算机还是远程服务器上的最佳方法是什么?
可以使用以下内容确定路径字符串是否为UNC:
new Uri(path).IsUnc
Run Code Online (Sandbox Code Playgroud)
这适用于以C:\或其他驱动器号开头的路径,但是路径如下:
\\machinename\sharename\directory
\\10.12.34.56\sharename\directory
Run Code Online (Sandbox Code Playgroud)
...两者都引用本地机器 - 这些是UNC路径但仍然是本地路径.
我试过Request.UserHostAddress;但是API控制器在Request中没有UserHostAddress.
我试图使用C#获取客户端计算机的IP地址.我使用以下代码获取IP地址:
string IPAddress = HttpContext.Current.Request.UserHostAddress;
Run Code Online (Sandbox Code Playgroud)
但它给了我编码格式的响应,即 fe80::ed13:dee2:127e:1264%13
我怎样才能获得实际的IP地址?任何人都面临这个问题请分享一些想法.
我正在尝试审核控制器上的动作事件.我想跟踪经过身份验证的用户名,他的IP地址和被调用的控制器操作.
我的过滤码:
public class AuditAttribute : System.Web.Http.Filters.ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext filterContext)
{
var request = filterContext.Request;
// get user name + ip address + controlleraction
base.OnActionExecuting(filterContext);
}
Run Code Online (Sandbox Code Playgroud)
我在互联网上搜索只看到如何为Mvc而不是HTTP做的例子.例如,这里的链接讨论了如何审核Mvc的事件:http: //rion.io/2013/03/03/implementing-audit-trails-using-asp-net-mvc-actionfilters/
然而,这个链接讨论了如何捕获HTTP Web应用程序的IP地址:在Web API身份验证过滤器中捕获请求IP地址 但我很难遵循它.不确定将此代码放在哪里.
感谢您的帮助.
我试图在控制器中获取客户端IP地址.它工作,但有时我得到这个错误:
The underlying connection was closed: An unexpected error occurred on a receive
String IP = "";
using (WebResponse response = request.GetResponse())
{
using (StreamReader stream = new StreamReader(response.GetResponseStream()))
{
IP = stream.ReadToEnd();
}
}
int first = IP.IndexOf("Address: ") + 9;
int last = IP.LastIndexOf("</body>");
IP = IP.Substring(first, last - first);
Run Code Online (Sandbox Code Playgroud)
获取客户端IP地址有什么不同的方法吗?
我对 asp.net mvc 堆栈完全陌生,我想知道 Request.Header 对象发生了什么?
基本上我想做的是拉出设备(PC)IP地址,但我无法检索所需的输出。我也尝试过 Request.ServerVariables 对象,但结果始终保持为 NULL。
我正在使用 asp.net MVC。此功能是否需要任何更改:
public static string GetIP()
{
string functionReturnValue = null;
//Gets IP of actual device versus the proxy (WAP Gateway)
functionReturnValue = HttpContext.Current.Request.Headers["X-FORWARDED-FOR"]; //functionReturnValue = null
if (string.IsNullOrEmpty(functionReturnValue))
{
functionReturnValue = HttpContext.Current.Request.Headers["X-Forwarded-For"];//functionReturnValue = null
if (string.IsNullOrEmpty(functionReturnValue))
{
//If not using a proxy then get the device IP
// GetIP = Context.Request.ServerVariables("REMOTE_ADDR")
if (string.IsNullOrEmpty(functionReturnValue))
{
//If not using a proxy then get the device IP
functionReturnValue = HttpContext.Current.Request.Headers["X-CLIENT-IP"];//functionReturnValue = …Run Code Online (Sandbox Code Playgroud)