怎样获取客户端IP地址Request.UserHostAddress为什么是本机回路地址

astraydog 2010-05-04 07:24:51
怎样获取客户端IP地址Request.UserHostAddress为什么是本机回路地址127.0.0.1,我想要的 是真正分配给电脑的IP地址如210.32.**.**,这个该怎么获取呢。。。
...全文
3781 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
astraydog 2010-05-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 mngzilin 的回复:]
引用 5 楼 astraydog 的回复:
引用楼主 astraydog 的回复:
怎样获取客户端IP地址Request.UserHostAddress为什么是本机回路地址127.0.0.1,我想要的 是真正分配给电脑的IP地址如210.32.**.**,这个该怎么获取呢。。。

Request.ServerVariables("REMOTE_ADDR") 这个咋不能用啊,用这个有没有什么……
[/Quote]
配置是把那个主目录改下吗??我是一点都不懂的啊、、、
astraydog 2010-05-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 mngzilin 的回复:]
引用 5 楼 astraydog 的回复:
引用楼主 astraydog 的回复:
怎样获取客户端IP地址Request.UserHostAddress为什么是本机回路地址127.0.0.1,我想要的 是真正分配给电脑的IP地址如210.32.**.**,这个该怎么获取呢。。。

Request.ServerVariables("REMOTE_ADDR") 这个咋不能用啊,用这个有没有什么……
[/Quote]
IIS怎么配置啊。。怎么做啊。。
mngzilin 2010-05-04
  • 打赏
  • 举报
回复
在配置了iis后,访问页面,下面三种都是可以的
HttpContext.Current.Request.UserHostAddress;
Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
mngzilin 2010-05-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 astraydog 的回复:]
引用楼主 astraydog 的回复:
怎样获取客户端IP地址Request.UserHostAddress为什么是本机回路地址127.0.0.1,我想要的 是真正分配给电脑的IP地址如210.32.**.**,这个该怎么获取呢。。。

Request.ServerVariables("REMOTE_ADDR") 这个咋不能用啊,用这个有没有什么要求啊
[/Quote]

在vs的调试环境下,只能获取到127.0.0.1,要获取真实的ip地址,请配置iis。
mngzilin 2010-05-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 astraydog 的回复:]
引用楼主 astraydog 的回复:
怎样获取客户端IP地址Request.UserHostAddress为什么是本机回路地址127.0.0.1,我想要的 是真正分配给电脑的IP地址如210.32.**.**,这个该怎么获取呢。。。

Request.ServerVariables("REMOTE_ADDR") 这个咋不能用啊,用这个有没有什么要求啊
[/Quote]

在vs的调试环境下,只能获取到127.0.0.1,要获取真实的ip地址,请配置iis。
wuyq11 2010-05-04
  • 打赏
  • 举报
回复
private string GetClientIP()
{
string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}

if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.UserHostAddress;
}
return result;
}

http://topic.csdn.net/u/20090617/11/8f0432b6-84ee-49da-a55f-86b3d343ab8b.html
astraydog 2010-05-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 astraydog 的回复:]
怎样获取客户端IP地址Request.UserHostAddress为什么是本机回路地址127.0.0.1,我想要的 是真正分配给电脑的IP地址如210.32.**.**,这个该怎么获取呢。。。
[/Quote]
Request.ServerVariables("REMOTE_ADDR") 这个咋不能用啊,用这个有没有什么要求啊
buafto 2010-05-04
  • 打赏
  • 举报
回复
            string user_IP = "";
if (Request.ServerVariables["HTTP_VIA"] != null)
{
// 穿过代理服务器取远程用户真实IP地址
user_IP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
user_IP = Request.ServerVariables["REMOTE_ADDR"].ToString();
}
法风 2010-05-04
  • 打赏
  • 举报
回复
学习中!
mngzilin 2010-05-04
  • 打赏
  • 举报
回复
Page.Request.UserHostAddress是可以正常获取客户端ip的
熙风 2010-05-04
  • 打赏
  • 举报
回复

在ASP中使用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是的IP地址,而不是真正的客户端IP地址。要想透过取得客户端的真实IP地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取。不过要注意的事,并不是每个代理服务器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的IP。还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用 Request.ServerVariables ("HTTP_X_FORWARDED_FOR") 取到的值将是空的。因此,如果要在程序中使用此方法,可以这样处理:即:如果客户端通过代理服务器,则取 HTTP_X_FORWARDED_FOR 的值,如果没通过代理服务器,就取 REMOTE_ADDR 的值。通用函数:如果不能取客户端真实IP,就会取客户端的代理

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧