- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
这里我可以使用这两种方法中的任何一种。有什么区别,我应该使用哪一个?
方法一:
string srUserIp = "";
try
{
srUserIp = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
}
catch
{
}
方法二:
string srUserIp = "";
try
{
srUserIp = Request.UserHostAddress.ToString();
}
catch
{
}
最佳答案
简短回答:两者是相同的。
长答案:要确定两者之间的区别,请使用 Reflector(或您喜欢的任何反汇编器)。
HttpRequest.UserHostAddress
属性的代码如下:
public string UserHostAddress
{
get
{
if (this._wr != null)
{
return this._wr.GetRemoteAddress();
}
return null;
}
}
请注意,它返回 _wr.GetRemoteAddress()
。 _wr
变量是 HttpWorkerRequest
对象的实例。 HttpWorkerRequest
派生了不同的类,使用哪一个取决于您使用的是 IIS 6、IIS 7 还是更高版本,以及其他一些因素,但是您将在 Web 中使用的所有类应用程序具有相同的 GetRemoteAddress()
代码,即:
public override string GetRemoteAddress()
{
return this.GetServerVariable("REMOTE_ADDR");
}
如您所见,GetRemoteAddress()
仅返回服务器变量 REMOTE_ADDR
。
至于使用哪一个,我建议使用 UserHostAddress
属性,因为它不依赖于“魔术字符串”。
快乐编程
关于c# - Request.UserHostAddress 和 Request.ServerVariables ["REMOTE_ADDR".ToString() 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13994582/
我对这两个服务器变量之间的区别感到困惑。检查 IIS 文档,它指出:- HTTP_HOST Returns the name of the Web server.This may or may not
假设我们正在跟踪网络服务的最终用户 IP: ip = Request.ServerVariables("HTTP_X_FORWARDED_FOR") If ip = "" Then ip =
微软的HttpContext.Current.Request.ServerVariables[“REMOTE_ADDR”]正在为远程客户端返回ipv6。但是,我需要将此数据用于一个会话日志表,其中的C
我模拟了 Controller 中使用的服务器变量。 request.SetupGet(x => x.ServerVariables) .Returns(new System.Collecti
为了避免错误“在实例化枚举器之后修改了集合”在遍历 Request.ServerVariables.Keys 集合之前,我发现了一些使用以下行的建议: IEnumerator en = Request
public static string Call() { string ref1 = HttpContext.Current.Request.ServerVariables["HTTP_RE
这个问题在这里已经有了答案: ASP.NET Web API: How do you read server variables in a Web API controller? (2 个回答) 7年
我有一个旧的 ISAPI 扩展,需要将服务器变量转发给另一个应用程序。目前,应用程序将一些固定值显式推送到后端应用程序,但实际返回所有这些值会更好。 我知道 ecb->GetServerVariabl
这是我的情况: Page1.aspx 重定向到 Page2.aspx,后者执行一些处理(不向用户显示),然后重定向到 Page3.aspx,后者检查 ServerVariables["HTTP_REF
我有一个 MVC3 应用程序,它突然给我一些奇怪的行为。首先是一些背景知识(尽管我会尽量简短)。 在我的 Controller 操作中,我有这段代码: public ActionResult Grid
获取客户端的IP地址,代码如下: 复制代码代码如下: /// <summary> /// 获取客户端IP地址 /// </summary&
我正在维护一个经典的asp应用程序,在遍历代码时,我遇到了两行相似的代码: Request.ServerVariables("URL") ' Output: "/path/to/file.asp" R
经典ASP Request.ServerVariables(“LOGON_USER”)返回错误的用户名。这是场景: 我在域上有两个帐户,一个用于管理,一个用于正常使用。 在运行ASP脚本的服务器上,将
我正在使用 Visual Studio 2008 开发 ASP.NET 3.5 应用程序。 我的默认页面在 Page_Load 方法中有一些重定向代码: protected void Page
目前我正在使用 Request.ServerVariables["REMOTE_ADDR"] 从客户端获取 IP。 调用此方法时我得到什么保证。或者我也应该查看其他 ServerVariables 吗
我有一个 IIS 托管的 ASP.NET WebAPI 应用程序,我使用 ServerVariables["REMOTE_ADDR"] 获取客户端地址并识别用户:客户端登录,我将生成一个 cookie
假设我有一个通过 http://www.mypage.com/test.aspx 访问的远程页面.在该页面上,我使用代码 Request.ServerVariables["HTTP_HOST"].To
我有以下代码: string ip = Request.ServerVariables["REMOTE_ADDR"]; 其中,在测试环境中确实返回用户 IP 地址,但是当我们将网站部署到生产环境时,此
我有以下代码,在运行时失败... var mock = new Mock(); mock.SetupGet(x => x.HttpContext.Request .ServerVariable
我正在尝试使用 asp.net (mvc4) 应用程序获取客户端的公共(public) IP 地址。当我使用HttpContext.Current.Request.ServerVariables["H
我是一名优秀的程序员,十分优秀!