获取客户端IP问题,为什么得到的IP是::1?

diffmaker 2008-05-13 11:40:22
我用
string ip = Request.UserHostAddress;
获取客户端IP,可是在用本机测试时,得到的值为:::1
我的机器是Vista,无线上网,用的是默认的IE7浏览器

不知道怎么才能得到正确的IP地址了,请赐教
...全文
315 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2009-02-17
  • 打赏
  • 举报
回复
我的去了还是不行啊
我的系统是windows2008
diffmaker 2008-05-14
  • 打赏
  • 举报
回复
感谢各位,真的是IPv6的原因,去了就可以了
powerlly 2008-05-13
  • 打赏
  • 举报
回复
好像是IPV6的ip表示法
asdfg_ 2008-05-13
  • 打赏
  • 举报
回复
能够得到客户端的ip吗
diffmaker 2008-05-13
  • 打赏
  • 举报
回复
我是这样写的代码,很早以前要网上找的了:
public static string GetClientIp()
{
string ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (ip == null || ip == string.Empty || ip.ToLower().IndexOf("unknown") > -1)
ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
else if (ip.IndexOf(",") > -1)
ip = ip.Substring(0, ip.IndexOf(","));
else if (ip.IndexOf(";") > -1)
ip = ip.Substring(0, ip.IndexOf(";"));
return ip;
}
diffmaker 2008-05-13
  • 打赏
  • 举报
回复
Request.ServerVariables["REMOTE_ADDR"]

得到的也是

::1
webwalker 2008-05-13
  • 打赏
  • 举报
回复

Vista的机器没跑过, 无法模拟你的环境,按理来说可以获得客户端IP

不保证能支持所有平台 你可以试试

Request.ServerVariables["Remote_Addr"]
//http_x_forwarded_for

大飞飞虫 2008-05-13
  • 打赏
  • 举报
回复
如果有代理的话,需要判断一下取另外一个值的,才能看到真实IP
大飞飞虫 2008-05-13
  • 打赏
  • 举报
回复
Request.ServerVariables["REMOTE_ADDR"]
zxq200407 2008-05-13
  • 打赏
  • 举报
回复
把Vista的IPV6协议去掉试下
powerlly 2008-05-13
  • 打赏
  • 举报
回复
127.0.0.1 localhost

# special IPv6 addresses
::1 localhost ipv6-localhost ipv6-loopback

110,524

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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