看到另一篇帖子说淘宝 IP 库挂了……我想了下还是分享一下自己的 IP 库吧。
数据基于纯真 IP 库 2019-09-25
的数据,一般我会每个月去更新一次(官方是每周,但是我可能没有这么多时间每周都去更新一次),自己写了一个脚本把 txt 格式的数据导入到了数据库里,并区分了国家、地区和运营商。
返回结果为 Json,区分国家、地区、运营商,支持返回明文、Unicode 编码结果。
接口程序使用 PHP 开发,环境为 PHP 7.3.8,搭建在一台 4 核 i5-6500 小机器上,做了 Redis 缓存,首次查询后会把结果缓存在 Redis,下一次查询直接从缓存调取,速度会快很多。
之前的测试结果:
小项目或者自己测试之类的用这个应该是没问题的,我会长期提供服务(我自己的网站也在用)。大项目还是建议用大厂的 API 吧……我也不敢保证我的 SLA 能达到小数点后几个 9 什么的...
https://ip.mcr.moe/
GET /?ip=要查询的地址
https://ip.mcr.moe/?ip=1.1.1.1
https://ip.mcr.moe/?ip=1.1.1.1&unicode
正常返回结果
{
"status":200,
"message":"OK",
"addr":"14.215.177.38",
"country":"中国",
"area":"广东省广州市",
"provider":"北京百度网讯科技有限公司电信节点"
}
无效的 IP 地址
{
"status":500,
"message":"Invalid IP Address"
}
因为纯真 IP 库格式的问题,我没有办法细分到省和市……所以统一用 area 来表示了。
接口没有限制单 IP QPS,但是还是希望各位合理使用,上面还运行着公益内网穿透 owo
如果发现有查询结果错误的话欢迎在帖子里留言或者邮箱联系我修正:YWtrYXJpaW5zQGdtYWlsLmNvbQ==
考虑到纯真数据库可能不够全的问题,我增加了一个 ip2region 的数据库查询选项,在查询参数里加上 &db2 即可使用 ip2region 的数据库。
示例:https://ip.mcr.moe/?ip=223.5.5.5&db2
但是在我实际测试中发现 ip2region 在查询部分冷门 IP 地址时的准确度不如纯真 IP 库,因此建议还是将纯真 IP 库作为主要选择,ip2region 可以作为参考使用。
另外还增加了 Json 美化效果,可以更直观的看到返回结果。当然如果你不喜欢或者有特殊原因不能使用这种美化过的 Json 的话,也可以加个参数 &compress 将 json 变回原来压缩过的效果。
网站已经迁移到国内的托管服务器了,访问速度更快也更稳定。现在可以通过新的域名 ip-moe.zerodream.net 访问,老域名 ip.mcr.moe 不受影响依然可以使用。
但是老域名因为没有备案所以只能通过香港服务器转发,访问速度可能较慢,因此建议使用新的备案直连域名访问,以达到最佳的请求速度和稳定性。
1
opengps 2019-10-07 08:45:23 +08:00 via Android
ip 库的总有效数据量多少?
|
2
KasuganoSoras OP @opengps #1 看了一下,是 526742 条
|
3
frozenway 2019-10-07 09:12:41 +08:00
纯真的准确率太低了,以前用的时候经常被运营怼
|
5
lovestudykid 2019-10-07 09:43:58 +08:00 1
gitee.com/lionsoul/ip2region
这个号称 99.9%,连各种语言的查询客户端都提供了... |
6
opengps 2019-10-07 10:02:31 +08:00
@KasuganoSoras 跟我之前了解的相似,52 万条,跟 ipv4 的 43 亿条占比太小,建议对接下百度地图高德地图,做替补查询
|
7
caijunyi 2019-10-07 11:13:23 +08:00
已经在使用了。挺好的!
|
9
starsriver 2019-10-07 11:37:35 +08:00 via Android
纯真也在用。备用吧。
淘宝还是很稳的,这两天可能是因为特殊时间 |
11
opengps 2019-10-07 11:47:26 +08:00
@bagel 刚刚总结了一下,但愿不被站长理解成 aff 继续降权: https://www.opengps.cn/Blog/View.aspx?id=476&f=v
|
12
nicoljiang 2019-10-07 12:35:07 +08:00
@opengps 这 50 多万条是 IP 段。。。大的段可能包含上百万个 IP
|
13
KasuganoSoras OP @starsriver #9 淘宝主要是 QPS 限制的太低了,只能作为人工搜索使用。目前增加了一个新的选择 ip2region,后续我会考虑接入更多的 IP 库,继续完善它。
@nicoljiang #12 是的,其中还包含了很多类似于 192.168.0.0 / 255.0.0.0 这些保留地址,实际上纯真 IP 库还是很全的,日常查询完全足够了。 |
14
KallyDev 2019-10-07 13:11:26 +08:00 via iPhone
编码似乎有些问题,环境是 iOS Chrome
{ "status": 200, "message": "OK", "addr": "1.1.1.1", "country": "缇庡浗", "area": "缇庡浗", "provider": "APNIC&CloudFlare 鍏叡 DNS 鏈嶅姟鍣�" } |
15
KasuganoSoras OP @KallyDev #14 服务器端是 UTF-8 无 BOM,如果出现编码问题可以试下在 URL 里加上 &unicode 参数
|
16
Soar360 2019-10-07 13:20:08 +08:00
纯真的数据库直接集成到程序里也很容易吧?
|
17
KasuganoSoras OP @Soar360 #16 是的,但是纯真的数据库体积有点大( 32MB ),集成到程序里有点累赘。另外我把国家和地区单独存在一个字段里面,方便一些特殊场合使用,比如需要屏蔽国外访问的网站,可以直接判断:
if(json.country !== "中国") { return 403; } |
18
Tang 2019-10-07 15:13:23 +08:00 via Android
@KasuganoSoras 原始压缩后的 dat 文件应该没这么大吧
|
19
xiangyuecn 2019-10-07 16:04:38 +08:00
仅仅返回文字这种不太好用,还要自己解析省市然后反解出城市区划代码,有没有像淘宝 ip 库那样可以直接返回城市区划代码的?
|
20
KasuganoSoras OP @xiangyuecn #19 过段时间增加这个功能,到时候可能要重新导一份数据库
|
22
Vogan 2019-10-09 07:40:21 +08:00 via iPhone
我来说的点,免费的淘宝能返回运营商,其他免费的都没有运营商
|
23
KasuganoSoras OP @Vogan #22 有的,我的 API 返回字段有一个 provider 就是运营商,默认的话是纯真的 IP 库,会带有一些机房名字和其他信息,如果需要比较统一的(电信、移动、联通)可以加上 &db2 参数使用备用数据库。
|
24
alamak76 2019-10-09 10:07:33 +08:00
可以考虑 IP2Location LITE 的免费 IP 库。
|
25
ganymedenil590 2019-10-09 10:40:42 +08:00
|
26
wudi77 2021-04-03 13:36:05 +08:00
@KasuganoSoras 您好,网站证书昨天到期啦,目前无法使用。
|
27
KasuganoSoras OP @wudi77 #26 谢谢,已经看到了,正在更新
|
28
wudi77 2021-07-02 15:05:03 +08:00
您好,网站证书今天又到期啦,目前无法使用。
|
29
wudi77 2021-07-02 15:05:14 +08:00
@KasuganoSoras 您好,网站证书今天又到期啦,目前无法使用。
|
30
KasuganoSoras OP @wudi77 谢谢提醒,证书已经更新,换了个一年的
|
31
wudi77 2021-08-19 09:55:56 +08:00
@KasuganoSoras 您好,URL 无法访问了,请检查。
|
32
KasuganoSoras OP @wudi77 #31 谢谢提醒,域名过期了,刚刚续费完。
|
33
wudi77 2021-12-27 15:34:43 +08:00
@KasuganoSoras 您好,URL 无法访问了,请检查。
|
34
KasuganoSoras OP @wudi77 #33 网络出问题了,今天一直在外面没看到消息,已经恢复了
|
35
wudi77 2022-01-24 14:25:36 +08:00
@KasuganoSoras 您好,URL 无法访问了,请检查。
|
36
KasuganoSoras OP @wudi77 #35 已恢复,感谢提醒
|
37
uniteweare 2022-01-25 22:28:50 +08:00
@KasuganoSoras 您好,URL 无法访问了,请检查。
|
38
KasuganoSoras OP @uniteweare #37 忘记把反代服务跑起来了😓感谢提醒
|
39
uniteweare 2022-02-28 10:33:30 +08:00
@KasuganoSoras Error 502
|
40
wudi77 2022-05-26 11:29:12 +08:00
@KasuganoSoras 您好,URL 无法访问了,请检查。
|
41
uniteweare 2022-05-26 15:48:47 +08:00
@KasuganoSoras Error 502 啦,麻烦检查一下哟
|
42
KasuganoSoras OP @uniteweare #41 谢谢提醒,服务器到期忘记续费了,已恢复
|
43
lwd2020 2022-07-29 03:59:49 +08:00
您好,我对这个项目比较有兴趣,我也想自建一个,不知道大佬是否愿意分享下源码
|
44
wudi77 2022-08-18 15:21:41 +08:00
@KasuganoSoras 您好,URL 无法访问了,请检查。
|
45
KasuganoSoras OP @wudi77 #44 域名过期了,刚续费完,可能要等一段时间 dns 才会变回去
|
46
uniteweare 2022-08-18 16:10:50 +08:00
@KasuganoSoras 感谢,正准备提醒您,已经解决啦,辛苦了
|
47
wudi77 2022-09-24 17:00:01 +08:00
@KasuganoSoras 您好,URL 无法访问了,请检查。
|
48
KasuganoSoras OP @wudi77 抱歉造成不便了,前几天在搬迁服务器数据,搬迁过程中可能会有一些问题。目前已经迁移到国内的服务器了,速度更快也更稳定了,以及目前可以通过新的域名 ip-moe.zerodream.net 访问,老域名不受影响依然可以使用,但是因为没有备案所以只能通过香港服务器转发,因此建议使用新的直连域名以达到最佳的请求速度。
|
49
wudi77 2023-05-04 14:27:38 +08:00
@KasuganoSoras 你好,请求返回内容变成
{ "status": 500, "message": "No Record, Please contact administrator" } ,麻烦检查下 |
50
KasuganoSoras OP @wudi77 之前已经修复了,忘记回复,抱歉
|
51
cyrker 2023-07-21 16:50:06 +08:00
感谢大佬 非常好用
|
52
wudi77 2023-09-13 08:46:49 +08:00
@KasuganoSoras 您好,URL 无法访问了,请检查。
|
53
KasuganoSoras OP @wudi77 #52 测试了一下好像没有问题,如果国内无法访问有可能是被墙了,可以更换国内接口 https://ip-moe.zerodream.net/ 更稳定
|
54
wudi77 291 天前 via iPhone
@KasuganoSoras 您好,URL 无法访问了,应该是证书到期了,请检查。
|
55
KasuganoSoras OP @wudi77 #54 抱歉,这几天我们在搬迁服务器机房,原来的宿迁机房最近不稳定,所以打算换到广东机房,这几天可以临时先用其他的 IP 库顶一下,预计 4 号左右能恢复。
|
56
KasuganoSoras OP @wudi77 #54 目前已经恢复了,如果无法访问请尝试清理 DNS 缓存后重试下
|
57
hellomuser 100 天前
你好,好像新域名 http://ip-moe.zerodream.net/ 出现 502 错误了
|
58
hellomuser 100 天前
@KasuganoSoras 你好,不知道是不是备案掉了,域名对应的 IP 好像不是之前的广东机房了,是个香港 IP
|
59
KasuganoSoras OP @hellomuser #58 不好意思,服务器机房和运营商那边因为费用问题没谈拢,运营商把网断了,我们也被清退了,现在正在找新的机房,临时把域名解析到了香港服务器上,预计两三天左右会恢复。
|
60
KasuganoSoras OP @hellomuser #58 这里有我们的服务状态页,可以关注一下这个网站,恢复了会通知的 https://status.zerodream.net/
|
61
hellomuser 96 天前
非常感谢,服务状态页很棒,之前不知道
|
62
KasuganoSoras OP @hellomuser #61 久等了,服务器已经搬迁到新的机房了,如果不能正常使用的话可以尝试清除一下 DNS 缓存
|
63
hellomuser 71 天前
你好,最近“开放认证服务”好像坏了,可能这项服务影响到了 ip-moe.zerodream.net 站点默认数据库。不过奇怪的是,勾选“使用备用数据库 (ip2region)”就能正常使用。
|
64
KasuganoSoras OP @hellomuser #63 已修复,是之前服务器数据库搬迁不完整导致的,现在应该可以了
|