当前位置:编程学习 > C#/ASP.NET >>

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

--------------------编程问答-------------------- 没用到这么高深的东西 --------------------编程问答-------------------- http://www.oschina.net/code/snippet_12_1095 --------------------编程问答--------------------
引用 2 楼 wind_cloud2011 的回复:
http://www.oschina.net/code/snippet_12_1095

此方法验证过 是不行的。 --------------------编程问答--------------------  string strHostName = System.Net.Dns.GetHostName();这个 就是取IP,你代码里这取得什么值 ? --------------------编程问答--------------------
引用 4 楼 wind_cloud2011 的回复:
 string strHostName = System.Net.Dns.GetHostName();这个 就是取IP,你代码里这取得什么值 ?

这个是取 服务器的 主机名的。不是客户端(浏览器)的 --------------------编程问答-------------------- 看看Request中都有什么东西,有没有可以用上的内容。 --------------------编程问答-------------------- 同样的网络访问使用UC浏览器(普通浏览器) 访问 IP138  能返回正确的IP。

同样的网络使用UC浏览器,访问网站能获取非正确的IP。

以上能否解释一下,看不懂.

意思是IP138能够返回客户端正确的IP,而自己的网站没法返回正确IP而是联通运营商的IP(网站获取到的IP是 一个电信的IP地址)?

--------------------编程问答-------------------- 把这个看一遍

Header Field Definitions

如果没有,那就是真的没有了. --------------------编程问答--------------------
引用 7 楼 Lost_Painting 的回复:
同样的网络访问使用UC浏览器(普通浏览器) 访问 IP138  能返回正确的IP。

同样的网络使用UC浏览器,访问网站能获取非正确的IP。

以上能否解释一下,看不懂.

意思是IP138能够返回客户端正确的IP,而自己的网站没法返回正确IP而是联通运营商的IP(网站获取到的IP是 一个电信的IP地址)?

是这样的。不知道IP138 是怎么解决的。 --------------------编程问答-------------------- 我随便切换了一个Proxy, IP138 就给了我一个IP: 代理服务器的IP...

如果不是代理服务器在转发请求的时候附带了源地址IP跟代理路径,IP138还能获得真实IP,这网站就成神了

我不信,打死我都不信... 

老虎,是不是摆了什么乌龙了.

  ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); 




一、没有使用代理服务器的情况:

      REMOTE_ADDR = 您的 IP
      HTTP_VIA = 没数值或不显示
      HTTP_X_FORWARDED_FOR = 没数值或不显示

二、使用透明代理服务器的情况:Transparent Proxies

      REMOTE_ADDR = 最后一个代理服务器 IP 
      HTTP_VIA = 代理服务器 IP
      HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

   这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。

三、使用普通匿名代理服务器的情况:Anonymous Proxies

      REMOTE_ADDR = 最后一个代理服务器 IP 
      HTTP_VIA = 代理服务器 IP
      HTTP_X_FORWARDED_FOR = 代理服务器 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

   隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。

四、使用欺骗性代理服务器的情况:Distorting Proxies

      REMOTE_ADDR = 代理服务器 IP 
      HTTP_VIA = 代理服务器 IP 
      HTTP_X_FORWARDED_FOR = 随机的 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

   告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。

五、使用高匿名代理服务器的情况:High Anonymity Proxies (Elite proxies)

      REMOTE_ADDR = 代理服务器 IP
      HTTP_VIA = 没数值或不显示
      HTTP_X_FORWARDED_FOR = 没数值或不显示 ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

   完全用代理服务器的信息替代了您的所有信息,就象您就是完全使用那台代理服务器直接访问对象。


引用 9 楼 mmm306306 的回复:
Quote: 引用 7 楼 Lost_Painting 的回复:

同样的网络访问使用UC浏览器(普通浏览器) 访问 IP138  能返回正确的IP。

同样的网络使用UC浏览器,访问网站能获取非正确的IP。

以上能否解释一下,看不懂.

意思是IP138能够返回客户端正确的IP,而自己的网站没法返回正确IP而是联通运营商的IP(网站获取到的IP是 一个电信的IP地址)?

是这样的。不知道IP138 是怎么解决的。
--------------------编程问答-------------------- 300分给我吧.... 

是不是代理过了多层,而你直接是 "ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); "

--------------------编程问答--------------------
引用 10 楼 Lost_Painting 的回复:
我随便切换了一个Proxy, IP138 就给了我一个IP: 代理服务器的IP...

如果不是代理服务器在转发请求的时候附带了源地址IP跟代理路径,IP138还能获得真实IP,这网站就成神了

我不信,打死我都不信... 

老虎,是不是摆了什么乌龙了.

  ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); 




一、没有使用代理服务器的情况:

      REMOTE_ADDR = 您的 IP
      HTTP_VIA = 没数值或不显示
      HTTP_X_FORWARDED_FOR = 没数值或不显示

二、使用透明代理服务器的情况:Transparent Proxies

      REMOTE_ADDR = 最后一个代理服务器 IP 
      HTTP_VIA = 代理服务器 IP
      HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

   这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。

三、使用普通匿名代理服务器的情况:Anonymous Proxies

      REMOTE_ADDR = 最后一个代理服务器 IP 
      HTTP_VIA = 代理服务器 IP
      HTTP_X_FORWARDED_FOR = 代理服务器 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

   隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。

四、使用欺骗性代理服务器的情况:Distorting Proxies

      REMOTE_ADDR = 代理服务器 IP 
      HTTP_VIA = 代理服务器 IP 
      HTTP_X_FORWARDED_FOR = 随机的 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

   告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。

五、使用高匿名代理服务器的情况:High Anonymity Proxies (Elite proxies)

      REMOTE_ADDR = 代理服务器 IP
      HTTP_VIA = 没数值或不显示
      HTTP_X_FORWARDED_FOR = 没数值或不显示 ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

   完全用代理服务器的信息替代了您的所有信息,就象您就是完全使用那台代理服务器直接访问对象。


Quote: 引用 9 楼 mmm306306 的回复:

Quote: 引用 7 楼 Lost_Painting 的回复:

同样的网络访问使用UC浏览器(普通浏览器) 访问 IP138  能返回正确的IP。

同样的网络使用UC浏览器,访问网站能获取非正确的IP。

以上能否解释一下,看不懂.

意思是IP138能够返回客户端正确的IP,而自己的网站没法返回正确IP而是联通运营商的IP(网站获取到的IP是 一个电信的IP地址)?

是这样的。不知道IP138 是怎么解决的。

不是乌龙
你可以试一试,你使用自带浏览访问 www.ip38.com
然后使用UC 访问 www.ip38.com 试一试。IP是不一样的。

像 IP138 和 ip.cn  是一样的 --------------------编程问答-------------------- 最后发现是UC有个NND云端加速,导致获取IP异常。!! --------------------编程问答-------------------- 嘿嘿,说了你摆乌龙了,不信... ...

引用 13 楼 mmm306306 的回复:
最后发现是UC有个NND云端加速,导致获取IP异常。!!
--------------------编程问答--------------------
引用 13 楼 mmm306306 的回复:
最后发现是UC有个NND云端加速,导致获取IP异常。!!


取得的是UC云端的地址?

那IP138 没有加速吗? --------------------编程问答-------------------- 标记下.好高级的样子 --------------------编程问答--------------------
引用 15 楼 findcaiyzh 的回复:
Quote: 引用 13 楼 mmm306306 的回复:

最后发现是UC有个NND云端加速,导致获取IP异常。!!


取得的是UC云端的地址?

那IP138 没有加速吗?


引用 14 楼 Lost_Painting 的回复:
嘿嘿,说了你摆乌龙了,不信... ...

Quote: 引用 13 楼 mmm306306 的回复:

最后发现是UC有个NND云端加速,导致获取IP异常。!!


最后发现如果是 通过ajax请求 一般处理文件,可以获取正确的地址。
ip.cn 就是这样的弄的获取到真正的IP。

但是 IP138 直接请求这个地址直接就能获取真正的IP:http://iframe.ip138.com/ic.asp   --------------------编程问答-------------------- 可恶的云端加速,默认 移动网络 是开启的

求大神们方案!

http://iframe.ip138.com/ic.asp  如果实现避开 UC的云端加速 获取真正的IP? --------------------编程问答-------------------- 求救!!!!!!!!!!!!!!!!!!! --------------------编程问答-------------------- 这是做网页的常识,那些纠结什么“如何获取真正的IP地址”的人,你只能想办法在人家的电脑上安装插件、并且通过插件获得IP。 --------------------编程问答-------------------- 跟什么“云端”也没有什么必然的联系。

手机为什么就必须要一个唯一的IP?

手机是通过通过人家自己的协议、走人家移动公司的自己的网络。 --------------------编程问答--------------------
引用 20 楼 sp1234 的回复:
这是做网页的常识,那些纠结什么“如何获取真正的IP地址”的人,你只能想办法在人家的电脑上安装插件、并且通过插件获得IP。


引用 21 楼 sp1234 的回复:
跟什么“云端”也没有什么必然的联系。

手机为什么就必须要一个唯一的IP?

手机是通过通过人家自己的协议、走人家移动公司的自己的网络。


因为现在有一个功能需要 使用移动网络 调用运营商接口 实现取手机号的功能。
但是由于UC有个云端加速,导致获取到的真正IP 是UC服务器的,导致大批量UC使用者获取手机号失败 --------------------编程问答--------------------
引用 20 楼 sp1234 的回复:
这是做网页的常识,那些纠结什么“如何获取真正的IP地址”的人,你只能想办法在人家的电脑上安装插件、并且通过插件获得IP。

这就是为什么纠结真正IP的原因。。 --------------------编程问答-------------------- 在IPV4地址严重缺乏的中国网络状况下,要获取真实IP谈何容易?即使没有被代理,通过路由器转发就会使得多个IP走一个IP出去,导致共享IP的情况发生。因此从IP判断手机号的想法本身就有严重的缺陷,要考虑其它方法。 --------------------编程问答--------------------
引用 24 楼 qldsrx 的回复:
在IPV4地址严重缺乏的中国网络状况下,要获取真实IP谈何容易?即使没有被代理,通过路由器转发就会使得多个IP走一个IP出去,导致共享IP的情况发生。因此从IP判断手机号的想法本身就有严重的缺陷,要考虑其它方法。


帅锅和sp1234 都想太多了。
现在电信,移动,联通运营商都有NET取号接口。
只要手机使用移动网络,经过加密请求后即可获取用户手机的号码,获取手机号后可以进行其他的操作了。否则还需要用户自己输入手机号码,然后再发送验证码啥的,操作复杂,容易造成用户的流失。

由于最近发现UC浏览器 这个云端加速功能,使取号失败造成大量用户的流失,故想解决下UC取号的问题。

其实就是用户试用UC浏览器 IP 问题。

http://iframe.ip138.com/ic.asp

却能获取用户手机网络IP 而非UC服务器的IP。

故求方案。。。。
--------------------编程问答-------------------- 初步推测应该是访问ip138的时候不需要走代理,故而可以获得真实IP,至少我本地代理访问ip138后,得带的也是代理ip,如果确定ip138所在网络肯定可以获取到真实ip,那么你可以考虑直接给客户安装个小工具,发起WebRequest请求ip138,并将返回内容里的ip地址传给你的服务端,由于工具是自己开发的,其信息自然有可信度,你也可以添加消息密钥实现加密。 --------------------编程问答-------------------- 补充:小工具可以使用sliverlight编写,还是通过UC浏览器访问打开带有sliverlight的页面(不想用户看到就把长宽设置为0),然后在sliverlight内部发起WebRequest请求ip138(跨域Get请求可以,Post请求不允许,这里是Get),然后把请求得到的ip信息发送给自己的服务器。 --------------------编程问答--------------------
引用 27 楼 qldsrx 的回复:
补充:小工具可以使用sliverlight编写,还是通过UC浏览器访问打开带有sliverlight的页面(不想用户看到就把长宽设置为0),然后在sliverlight内部发起WebRequest请求ip138(跨域Get请求可以,Post请求不允许,这里是Get),然后把请求得到的ip信息发送给自己的服务器。

谢谢兄弟介绍这么多。
其实 使用ajax 也可以获取"真正"的IP..
如果取号的话 需要浏览器重定向一次。。

那一步不好解决。。
--------------------编程问答-------------------- UP出来!!!! --------------------编程问答--------------------
引用 29 楼 mmm306306 的回复:
UP出来!!!!

你还想知道什么?既然你都会ajax了,不是sliverlight就是ajax获取ip138信息,没有其它问题才对(即使有问题你也没细说) --------------------编程问答-------------------- 速度结贴给分,不要在一个帖子里面讨论无数个问题,不利于检索.
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,