# ChinaIpSearch **Repository Path**: meaktsui/ChinaIpSearch ## Basic Information - **Project Name**: ChinaIpSearch - **Description**: 这是一个查询ip是否是在中国的小程序,利用shell脚本分析和解析数据,node+express快速搭建http服务。 - **Primary Language**: Shell - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 8 - **Created**: 2018-07-30 - **Last Updated**: 2025-04-08 ## Categories & Tags **Categories**: networklib **Tags**: None ## README # ChinaIpSearch #### 项目介绍 这是一个查询ip是否是在中国的小程序,利用shell脚本分析和解析数据,node+express快速搭建http服务。 感谢[张瑞](https://www.zhihu.com/people/RichardZhang/activities)的思路和提供的指导和帮助。 这是原问题的连接:[如何快速判断一个 IP 是否属于中国大陆?](https://www.zhihu.com/question/19794443/answer/88750032) #### 使用说明 1. 第一次使用时,可先执行fetchData.sh,下载并解析数据,执行后会生成两个文件,china_ip.txt和ip.txt。china_ip.txt是从Apanic官方数据中提取的中国ip段,ip.txt是解析后生成的数据,供http服务使用 2. http服务使用node编写,需保证已安装node运行时.安装完成后,在本项目根目录下执行`npm install`,待依赖安装完毕后,执行`npm start`启动服务,浏览器访问[http://localhost:8080/inChina](http://localhost:8080/inChina). 3. 可以配置定时任务,执行update.sh脚本,来更新数据文件。 4. http服务已默认添加从`x-forwarded-for`header中获取用户真实ip,你可以根据自身技术架构体系,在`IpApi.js`中更改获取用户真实ip的逻辑,参考第66行: ```javascript /** * 获取用户真实ip,一般情况下,Nginx反向代理会将用户真实ip放在header中 * @param req * @returns {*|string[]|string} */ function getRealIp(req) { return req.headers['x-forwarded-for'] || req.connection.remoteAddress; } ```