国内所有 IP 地址段

有多个途径得到所有的国内 IP 地址段,这里介绍其中两个。

 

使用已有的开源库


在 Github 上已经有人维护一个国内 IP 地址段,网址在这里

 

从 MaxMind 提取


MaxMind 提供 IP 对应地址的服务。首先得注册账号,然后去下载所需的 CSV 文件。这个文件基本包含了全球的 IP 地址,文件格式的字段说明在这里。这个版本属于 MaxMind 的简化免费版,每周更新。我们要的是国家级别的准确度,所以大概一个月更新一次就行。MaxMind 也提供了固定的下载链接,主要用来让程序自动下载更新。

 

下载 IP CSV 格式文件并转换成 txt 格式


下载页面,滚动到最下方 GeoLite2 Country: CSV Format,点击右边的 Download ZIP下载,解压后有几个文件,我们只需要 GeoLite2-Country-Blocks-IPv4.csv。处理这个文件最好在 Linux 下进行,如果你没有 Linux 环境,可以使用 IBM 的 Cloud Shell

进入到文件解压后的目录,执行以下命令,就会生成 cn-ip-list.txt,这个文件包含国内所有的 IP 地址段,不包含港澳台的,但是包括国外公司在国内注册使用的 IP 段。

awk -F ',' '{ if($2 == 1814991){ print $1} }' GeoLite2-Country-Blocks-IPv4.csv > cn-ip-list.txt

IP 段格式如下:

1.0.1.0/24
1.0.2.0/23
1.0.8.0/21