Loading...

自行搭建 IP 地址归属地查询系统实现自建 IP 库

之前我查询 IP 地址归属地一直用的是淘宝的 IP 库,但是那玩意限制请求速度,还经常炸,时不时就无法连接。

后来又去网上找了其他 IP 地址库,但是大多数都要收费或者是限制请求速度,实在忍受不了了,于是自己研究了一下,搭建了一个 IP 地址库。

我自己搭建的 API 地址:https://api.sakuramc.org/ 可以直接食用,不限制请求速度。

但是这不是重点,本教程是教你如何搭建属于自己的 IP 地址库,不再依赖别人的东西。

本教程使用的是纯真 IP 地址库,服务端源码来自网络,如果有侵权请通过邮件与我取得联系。

首先下载:ip-database.zip  下载完后解压到任意文件夹中。

双击 start.cmd 运行 IP 地址库后端,默认端口运行在 9527。

其他程序可以通过 Socket 连接 9527 端口,发送需要查询的 IP 地址,后端就会返回归属地信息,以下是 PHP 代码的例子。

<?php
function ip_getArea($ip) {
    $back = "";
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=> 1, "usec"=> 0));
    socket_set_option($socket,SOL_SOCKET,SO_SNDTIMEO,array("sec"=> 1, "usec"=> 0));
    if(@socket_connect($socket , "localhost", 9527)) {
        socket_write($socket, $ip, strlen($ip));
        while($t = socket_read($socket, 2048)){
            $back .= $t;
        }
        socket_close($socket);
        return $back;
    } else {
        return "IP信息获取失败";
    }
}
echo ip_getArea("114.114.114.114");

将会返回类似如下信息:

江苏省南京市 南京信风网络科技有限公司GreatbitDNS服务器

发表评论

》表情