UC浏览器 获取IP地址的问题。

马老虎 2013-12-10 11:33:52
我的手机(联通)使用的是 运营商网络使用UC浏览器,访问网站。
网站获取到的IP是 一个电信的IP地址,导致后续的操作失败(貌似UC启用了个代理或者走CDN)。

问题:如何获取真正的IP地址?
同样的网络访问使用UC浏览器(普通浏览器) 访问 IP138 能返回正确的IP。
同样的网络使用普通手机浏览器,访问网站能获取正确的IP。
同样的网络使用UC浏览器,访问网站能获取非正确的IP。

各种各样的代码都试过了,任然不行

/////
Response.Write(Request.UserHostAddress);
Response.Write("1<BR>");
/////
Response.Write(Request.ServerVariables["REMOTE_ADDR"]);
Response.Write("2<BR>");
/////
string strHostName = System.Net.Dns.GetHostName();
Response.Write(System.Net.Dns.GetHostAddresses(strHostName).GetValue(0).ToString());
Response.Write("3<BR>");
/////
Response.Write(Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);
Response.Write("4<BR>");
/////
string ip = "";

if (Request.ServerVariables["HTTP_VIA"] != null)
{
ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
ip = Request.ServerVariables["REMOTE_ADDR"].ToString();
}

Response.Write(ip);
Response.Write("5<BR>");





看看哪位知道咋解决?
...全文
1484 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
qldsrx 2013-12-13
  • 打赏
  • 举报
回复
引用 29 楼 mmm306306 的回复:
UP出来!!!!
你还想知道什么?既然你都会ajax了,不是sliverlight就是ajax获取ip138信息,没有其它问题才对(即使有问题你也没细说)
马老虎 2013-12-13
  • 打赏
  • 举报
回复
UP出来!!!!
鸭梨山大帝 2013-12-13
  • 打赏
  • 举报
回复
速度结贴给分,不要在一个帖子里面讨论无数个问题,不利于检索.
马老虎 2013-12-12
  • 打赏
  • 举报
回复
引用 24 楼 qldsrx 的回复:
在IPV4地址严重缺乏的中国网络状况下,要获取真实IP谈何容易?即使没有被代理,通过路由器转发就会使得多个IP走一个IP出去,导致共享IP的情况发生。因此从IP判断手机号的想法本身就有严重的缺陷,要考虑其它方法。
帅锅和sp1234 都想太多了。 现在电信,移动,联通运营商都有NET取号接口。 只要手机使用移动网络,经过加密请求后即可获取用户手机的号码,获取手机号后可以进行其他的操作了。否则还需要用户自己输入手机号码,然后再发送验证码啥的,操作复杂,容易造成用户的流失。 由于最近发现UC浏览器 这个云端加速功能,使取号失败造成大量用户的流失,故想解决下UC取号的问题。 其实就是用户试用UC浏览器 IP 问题。 http://iframe.ip138.com/ic.asp 却能获取用户手机网络IP 而非UC服务器的IP。 故求方案。。。。
qldsrx 2013-12-12
  • 打赏
  • 举报
回复
在IPV4地址严重缺乏的中国网络状况下,要获取真实IP谈何容易?即使没有被代理,通过路由器转发就会使得多个IP走一个IP出去,导致共享IP的情况发生。因此从IP判断手机号的想法本身就有严重的缺陷,要考虑其它方法。
马老虎 2013-12-12
  • 打赏
  • 举报
回复
引用 20 楼 sp1234 的回复:
这是做网页的常识,那些纠结什么“如何获取真正的IP地址”的人,你只能想办法在人家的电脑上安装插件、并且通过插件获得IP。
这就是为什么纠结真正IP的原因。。
马老虎 2013-12-12
  • 打赏
  • 举报
回复
引用 20 楼 sp1234 的回复:
这是做网页的常识,那些纠结什么“如何获取真正的IP地址”的人,你只能想办法在人家的电脑上安装插件、并且通过插件获得IP。
引用 21 楼 sp1234 的回复:
跟什么“云端”也没有什么必然的联系。 手机为什么就必须要一个唯一的IP? 手机是通过通过人家自己的协议、走人家移动公司的自己的网络。
因为现在有一个功能需要 使用移动网络 调用运营商接口 实现取手机号的功能。 但是由于UC有个云端加速,导致获取到的真正IP 是UC服务器的,导致大批量UC使用者获取手机号失败
马老虎 2013-12-12
  • 打赏
  • 举报
回复
引用 27 楼 qldsrx 的回复:
补充:小工具可以使用sliverlight编写,还是通过UC浏览器访问打开带有sliverlight的页面(不想用户看到就把长宽设置为0),然后在sliverlight内部发起WebRequest请求ip138(跨域Get请求可以,Post请求不允许,这里是Get),然后把请求得到的ip信息发送给自己的服务器。
谢谢兄弟介绍这么多。 其实 使用ajax 也可以获取"真正"的IP.. 如果取号的话 需要浏览器重定向一次。。 那一步不好解决。。
qldsrx 2013-12-12
  • 打赏
  • 举报
回复
补充:小工具可以使用sliverlight编写,还是通过UC浏览器访问打开带有sliverlight的页面(不想用户看到就把长宽设置为0),然后在sliverlight内部发起WebRequest请求ip138(跨域Get请求可以,Post请求不允许,这里是Get),然后把请求得到的ip信息发送给自己的服务器。
qldsrx 2013-12-12
  • 打赏
  • 举报
回复
初步推测应该是访问ip138的时候不需要走代理,故而可以获得真实IP,至少我本地代理访问ip138后,得带的也是代理ip,如果确定ip138所在网络肯定可以获取到真实ip,那么你可以考虑直接给客户安装个小工具,发起WebRequest请求ip138,并将返回内容里的ip地址传给你的服务端,由于工具是自己开发的,其信息自然有可信度,你也可以添加消息密钥实现加密。
马老虎 2013-12-11
  • 打赏
  • 举报
回复
可恶的云端加速,默认 移动网络 是开启的 求大神们方案! http://iframe.ip138.com/ic.asp 如果实现避开 UC的云端加速 获取真正的IP?
马老虎 2013-12-11
  • 打赏
  • 举报
回复
引用 15 楼 findcaiyzh 的回复:
引用 13 楼 mmm306306 的回复:
最后发现是UC有个NND云端加速,导致获取IP异常。!!
取得的是UC云端的地址? 那IP138 没有加速吗?
引用 14 楼 Lost_Painting 的回复:
嘿嘿,说了你摆乌龙了,不信... ...
引用 13 楼 mmm306306 的回复:
最后发现是UC有个NND云端加速,导致获取IP异常。!!
最后发现如果是 通过ajax请求 一般处理文件,可以获取正确的地址。 ip.cn 就是这样的弄的获取到真正的IP。 但是 IP138 直接请求这个地址直接就能获取真正的IP:http://iframe.ip138.com/ic.asp
javaoraspx 2013-12-11
  • 打赏
  • 举报
回复
标记下.好高级的样子
  • 打赏
  • 举报
回复
跟什么“云端”也没有什么必然的联系。 手机为什么就必须要一个唯一的IP? 手机是通过通过人家自己的协议、走人家移动公司的自己的网络。
  • 打赏
  • 举报
回复
这是做网页的常识,那些纠结什么“如何获取真正的IP地址”的人,你只能想办法在人家的电脑上安装插件、并且通过插件获得IP。
宝_爸 2013-12-11
  • 打赏
  • 举报
回复
引用 13 楼 mmm306306 的回复:
最后发现是UC有个NND云端加速,导致获取IP异常。!!
取得的是UC云端的地址? 那IP138 没有加速吗?
鸭梨山大帝 2013-12-11
  • 打赏
  • 举报
回复
嘿嘿,说了你摆乌龙了,不信... ...
引用 13 楼 mmm306306 的回复:
最后发现是UC有个NND云端加速,导致获取IP异常。!!
马老虎 2013-12-11
  • 打赏
  • 举报
回复
求救!!!!!!!!!!!!!!!!!!!
马老虎 2013-12-10
  • 打赏
  • 举报
回复
引用 2 楼 wind_cloud2011 的回复:
http://www.oschina.net/code/snippet_12_1095
此方法验证过 是不行的。
wind_cloud2011 2013-12-10
  • 打赏
  • 举报
回复
http://www.oschina.net/code/snippet_12_1095
加载更多回复(11)

110,539

社区成员

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

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

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