ip 检测网站判 IP 的方法是什么?

2015-04-04 13:52:29 +08:00
 lirau

挂了vpn后,更改自己路由(国内线路强制走国内)。
www.ip138.com和www.ip.cn测试ip,前者变为国内ip(电信运营商分配的),后者依然是国外(vpn商自己的ip)。
然后就忽然思考着检测网站的运作原理了,是什么原理?
v2ex检测我的ip是电信运营商提供的ip。

7167 次点击
所在节点    程序员
42 条回复
geeti
2015-04-05 10:40:15 +08:00
@sNullp 他本意是想通过curl来直观的看这几个网站给你展示的ip,但这几个网站的域名都不支持curl直接返回IP。
比如curl curlmyip.com 就可以。
geeti
2015-04-05 10:41:36 +08:00
@sNullp 错了。是说前两个都可以curl出直观的ip,而ip138很烂,给你返回的是html源代码
sNullp
2015-04-05 10:41:45 +08:00
@geeti 哦原来是这个意思。
curl返回 ip 我一般用 ifconfig.me
geeti
2015-04-05 10:42:50 +08:00
@sNullp ifconfig.me很慢啊
sNullp
2015-04-05 10:43:07 +08:00
@geeti 这只能说明 ip138 没有对 curl 的 UA 做特殊处理。。。当然他数据库是很烂,但是刚才还以为他的意思是靠 curl 就能得到数据库的大小。
sNullp
2015-04-05 10:44:38 +08:00
@geeti 追求速度的话我用 ip.appspot.com
mingyun
2015-04-05 10:52:18 +08:00
geeti
2015-04-05 10:58:19 +08:00
@sNullp 这个好,google的必须首选
wdlth
2015-04-05 11:41:43 +08:00
http://whatismyip.akamai.com/
我用的是这个……
bdnet
2015-04-05 11:55:33 +08:00
Web服务器会获取Request的IP,至于线路经过了几层,线路不同,都会影响web服务器拿的的ip。
cnbeining
2015-04-05 12:39:52 +08:00
不同站的方法还真可能不一样。

例如:

schezuk
2015-04-05 13:28:43 +08:00
discuz的办法https://github.com/Discuz-X/DiscuzX/blob/Common/uc_client/model/base.php
···
function init_var() {
$this->time = time();
$cip = getenv('HTTP_CLIENT_IP');
$xip = getenv('HTTP_X_FORWARDED_FOR');
$rip = getenv('REMOTE_ADDR');
$srip = $_SERVER['REMOTE_ADDR'];
if($cip && strcasecmp($cip, 'unknown')) {
$this->onlineip = $cip;
} elseif($xip && strcasecmp($xip, 'unknown')) {
$this->onlineip = $xip;
} elseif($rip && strcasecmp($rip, 'unknown')) {
$this->onlineip = $rip;
} elseif($srip && strcasecmp($srip, 'unknown')) {
$this->onlineip = $srip;
}
preg_match("/[\d\.]{7,15}/", $this->onlineip, $match);
$this->onlineip = $match[0] ? $match[0] : 'unknown';
$this->app['appid'] = UC_APPID;
}
···
loveminds
2015-04-05 14:35:07 +08:00
@Showfom CZ88现在也还行了,我长期在给他们更新大量数据
loveminds
2015-04-05 14:43:41 +08:00
@cnbeining 你这个是自己设置的PTR?
@Showfom 我提交的准确度还行吧 基本上都能到楼
香港 星步互联数据中心(上环文咸西街59-67号金日集团中心2层)
香港 亚洲数据有限公司(青山公路491号嘉力工业中心)
香港互联虚拟化有限公司数据中心(九龙新蒲岗大有街31号善美工业大厦1604室)
北京互联互通科技有限公司兆维IDC机房(朝阳区酒仙桥路6号院1号楼)
msg7086
2015-04-05 16:33:59 +08:00
@cnbeining 贝宁叔又在乱玩PTR了。不考虑用一下 gfw.red 后缀么→_→
paulgao
2015-04-05 20:18:29 +08:00
以 PHP 为例,IPIP.NET 的客户端 IP 目前以 REMOTE_ADDR 为准了。HTTP_X_FORWARDED_FOR 实在是不敢信任了,尤其在中国这种小运营商乱搞的情况下。
Showfom
2015-04-05 23:07:23 +08:00
@loveminds 么么哒
loveminds
2015-04-06 12:19:01 +08:00
@bobopu 123cha比较大
loveminds
2015-04-06 13:05:55 +08:00
@msg7086 他们什么地方可以自己玩儿PTR呢,美国?
msg7086
2015-04-06 18:44:11 +08:00
@loveminds 有些商家设ptr不查正向解析,很容易被玩坏…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/181530

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX