• Stars
    star
    1,014
  • Rank 45,366 (Top 0.9 %)
  • Language
    Go
  • License
    MIT License
  • Created over 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Geoip MaxMind Database for china ip list! This is also an example of generating MaxMind Database!

mmdb_china_ip_list

README | English Document

Daily Build

china_ip_list纯真CNClang.CNali AS37963发布的中国IP列表叠加到MaxMind官方社区版数据库中。

同时,这也是一个如何生成MaxMind数据库的示例。

适合在网络分流工具中使用,对中国IP的匹配分流更为友好,兼容MaxMind DB的客户端!

每周自动拉取新的MaxMind、china_ip_list、纯真CN和Clang.cn数据库,并发布一个新的Release版本。

固定下载连接

  • Release 和 Daily 均切换到使用 golang 版本的 mmdb writer 构建
  • 完整版本包含官方全部非CN的IPv4数据和IPv6数据,然后写入china_ip_list纯真CNClang.CN
  • Lite版本仅包含官方非CN的IPv4数据CN的IPv6数据,读取官方CSV文件并且跳过了CN的记录,然后再写入china_ip_list纯真CNClang.CN,并且仅写入了iso_codegeoname_id以达到缩小体积的目的
文件 release分支 CDN
Country.mmdb 链接 链接
Country.mmdb lite 链接 链接
version 链接 链接

不好意思,阿里云到期了续不起,国内镜像暂时先下了,优先用CDN吧!

简介

在网络分流工具(例如Clash)中使用MaxMindGeoLite2-Country对中国IP的匹配不是很友好,实际使用中出现不少问题。

此项目,在MaxMind数据库的基础上,加入了china_ip_list纯真CNClang.CN的数据。ipv6使用Clang.cn的数据,使得对中国IP匹配得更为友好。

由于构建mmdb,后者覆盖前者的特性,ip列表的插入顺序如下:

  1. Clang.CN
  2. 纯真CN数据库
  3. china_ip_list

使用

下载生成的Country.mmdb

使用方式同MaxMind官方API,可参考指导文档

OpenClash中使用

下载生成的Country.mmdb,然后替换掉/etc/openclash/Country.mmdb,最后重启下clash即可。

Perl版本构建指导

需要perl环境,MaxMind-DB-Writer-perl的依赖和使用可以参考官方文档

# 下载mmdb writer
git clone https://github.com/maxmind/MaxMind-DB-Writer-perl.git writer
cd writer

# 安装依赖
curl -LO http://xrl.us/cpanm
perl cpanm –installdeps .

# 构建
./Build manifest
perl Build.PL
./Build install

# 返回上级目录
cd ..

# 下载本项目
git clone https://github.com/alecthw/mmdb_china_ip_list.git
cd mmdb_china_ip_list

# 下载GeoLite2-Country-CSV
curl -LR -o GeoLite2-Country-CSV.zip "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country-CSV&license_key=JvbzLLx7qBZT&suffix=zip"
unzip GeoLite2-Country-CSV.zip
rm -f GeoLite2-Country-CSV.zip
mv GeoLite2* mindmax

# 下载china_ip_list
curl -LR -o china_ip_list.txt "https://raw.githubusercontent.com/17mon/china_ip_list/master/china_ip_list.txt"

# 下载纯真数据库的CN
curl -LR -o CN.txt "https://raw.githubusercontent.com/metowolf/iplist/master/data/special/china.txt"

# 生成mmdb
perl china_ip_list.pl

生成的文件为china_ip_list.mmdb

MaxMind GeoIP 格式

官方对自己的数据库中的内容说明很少,都是自己一点点跟代码找出来的格式,然后据此生成的数据库。

下面列出所有字段示例供参考。

{
    "database_type": "GeoLite2-Country",
    "binary_format_major_version": 2,
    "build_epoch": 1589304057,
    "ip_version": 6,
    "languages": [
        "de",
        "en",
        "es",
        "fr",
        "ja",
        "pt-BR",
        "ru",
        "zh-CN"
    ],
    "description": {
        "en": "GeoLite2 Country database"
    },
    "record_size": 24,
    "node_count": 616946,
    "binary_format_minor_version": 0
}

network->字段

{
    "continent": {
        "code": "AS",
        "names": {
            "de": "Asien",
            "ru": "Азия",
            "pt-BR": "Ásia",
            "ja": "アジア",
            "en": "Asia",
            "fr": "Asie",
            "zh-CN": "亚洲",
            "es": "Asia"
        },
        "geoname_id": 6255147
    },
    "country": {
        "names": {
            "de": "China",
            "ru": "Китай",
            "pt-BR": "China",
            "ja": "中国",
            "en": "China",
            "fr": "Chine",
            "zh-CN": "中国",
            "es": "China"
        },
        "iso_code": "CN",
        "geoname_id": 1814991,
        "is_in_european_union": false,
    },
    "registered_country": {
        "names": {
            "de": "China",
            "ru": "Китай",
            "pt-BR": "China",
            "ja": "中国",
            "en": "China",
            "fr": "Chine",
            "zh-CN": "中国",
            "es": "China"
        },
        "iso_code": "CN",
        "geoname_id": 1814991
    },
    "represented_country": {
        "names": {
            "de": "China",
            "ru": "Китай",
            "pt-BR": "China",
            "ja": "中国",
            "en": "China",
            "fr": "Chine",
            "zh-CN": "中国",
            "es": "China"
        },
        "iso_code": "CN",
        "geoname_id": 1814991
    },
    "traits": {
        "is_anonymous_proxy": true,
        "is_satellite_provider": true
    }
}

感谢

其他

摸索不易,引用整合或者二次发布还望留个名......