2011-08-03 26 views
0

就这么简单。Asp.NET |获取IP当用户打开网站时点击一个按钮

我想将IP保存在会话ID或。当他在一个按钮,点击它会做这样的:

using (StreamWriter writer = new StreamWriter(fileStream)) 
     { 
      writer.WriteLine(TextBox1.Text); 
      } 

(它不是所有的代码OFC)

,当他点击一个按钮,它会WIRTE的IP到文件中。 :)

有什么办法呢?

+0

看看这可以帮助你:http://stackoverflow.com/questions/735350/how-to-get-a-users-client-ip-address-in-asp-net。 – Fred

回答

1

用途:

HttpContext.Current.Request.UserHostAddress; 

HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; 

此外,您可能首先要检查,如果他是在代理:

if(String.IsNullOrEmpty(HttpContext.Current.Request.ServerVariables("HTTP_X_FORWARDED_FOR"))) { 
    string ipAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; 
} 
else { 
    string ipAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; 

} 

,我会同意@巴里的职位关于这不是一个完美的解决方案。

0

要获取用户的IP地址,请使用Request.UserHostAddress,但请注意,这不是一个完美的解决方案,因为它不会显示单个用户的位置,例如他们位于防火墙后面的公司网络中,只显示一个(或多个)外部公司IP地址。

+0

我已经尝试做到这一点:protected void Page_Load(object sender,EventArgs e) Session [“Id”] = HttpContext.Current.Request.UserHostAddress; },当我是dogin时,它不工作:writer.WriteLine(Session [“Id”]。ToString()); –

相关问题