当前位置:  开发笔记 > 后端 > 正文

客户端计算机的IP地址

如何解决《客户端计算机的IP地址》经验,为你挑选了1个好方法。

请让我知道如何获取客户端IP地址,

我已经尝试了以下所有操作,但得到的输出相同:127.0.0.1

string strClientIP;
strClientIP = Request.UserHostAddress.ToString();

string strHostName = System.Net.Dns.GetHostName();
string clientIPAddress = System.Net.Dns.GetHostAddresses(strHostName).GetValue(0).ToString();

string ipaddress = string.Empty ;
ipaddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (ipaddress == "" || ipaddress == null)
    ipaddress = Request.ServerVariables["REMOTE_ADDR"];

如何获得正确的IP?



1> vfilby..:

使用,您处在正确的轨道上REMOTE_ADDR,但是如果您在本地访问该站点可能无法正常工作,它将显示本地主机。

REMOTE_ADDR 是包含客户端IP地址的标头,您应该首先检查该IP地址。

如果HTTP_X_FORWARDED访问者正在通过代理服务器,则还应检查到标题。请注意,这HTTP_X_FORWARDED是一个可以包含多个逗号分隔值的数组,具体取决于代理的数量。

这是一个小的c#代码段,显示确定客户端的ip:

 string clientIp = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
 if( !string.IsNullOrEmpty(clientIp) ) {
  string[] forwardedIps = clientIp.Split( new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries );
  clientIp = forwardedIps[forwardedIps.Length - 1];
 } else {
  clientIp = context.Request.ServerVariables["REMOTE_ADDR"];
 }

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有