2026年8月20日,《网络数据安全风险评估办法》将正式施行。新规要求,重要数据处理者每年必须开展一次风险评估,一般数据处理者则应至少每三年进行一次评估。IP地址早已被纳入《个人信息保护法》的监管范畴。如果只是为了做地域分析而长期存储用户的原始IP,这种操作在当前合规框架下已经行不通了。一个切实可行的替代方案是:使用离线IP库,在本地完成查询,解析出归属地后立即丢弃原始IP,不留存、不落库。

一、合规红线:为什么“存储IP做分析”已不可行?
1.1 个人信息保护法的“最小必要”原则
《个人信息保护法》明确强调:处理个人信息,必须具有明确、合理的目的,并采取对个人权益影响最小的方式。收集范围也应严格限定在实现目的的最小必要边界之内,不得过度收集。
举例来说:如果业务需求仅仅是了解用户来自哪个省份或城市,以便进行地域分析,那么长期留存用户的完整IP地址——这显然属于“明显不必要”。没有任何理由去存储一个远超实际需求的信息。
1.2 数据安全新规强化合规要求
2026年6月发布的数据安全新规,要求重要数据处理者每年开展一次风险评估。在实际审计过程中,IP查询日志是否完整、是否可追溯、是否形成闭环,都将成为审查重点。
如果系统中堆积了大量用户原始IP,但被问及存储原因、使用期限、法律依据时却含糊不清——这类场景在合规审计中基本会被标记为“高风险”。
1.3 监管趋势:从“能存就存”转向“能不留就不留”
近两年监管逻辑已经发生转变,不再仅仅关注“你存了什么”,而是更加关注“为什么存”“存多久”“能否用更优的方式替代”。能不留存的尽量不留,能脱敏的尽量脱敏——这早已不是一句空洞的口号,而是在越来越多实际场景中成为默认要求。

二、技术方案:IP离线库实现“用完即弃”
2.1 核心思路
原始IP仅作为瞬时输入,一旦解析出归属地便立即丢弃,不写入数据库,不进入日志。整个处理过程在本地完成,不经过外部网络,也不调用第三方在线API。
用户请求 → 获取IP → 本地离线库解析 → 输出省份/城市 → 存储脱敏结果 → 原始IP丢弃
2.2 为什么选择离线库而非在线API?
| 对比维度 | 在线API | 本地离线库 |
|---|---|---|
| 数据流向 | IP发送至第三方服务器 | 留在内网 |
| 合规风险 | 需额外DPA协议,数据出境风险 | 数据控制边界清晰,无第三方共享 |
| 原始IP留存 | 第三方可能记录 | 自主控制,可不落库 |
| 查询延迟 | 30-80ms | <0.5ms |
| 高并发 | 易限流 | 单机250万QPS |
使用在线API,本质上相当于把用户IP数据交给第三方,需要额外签署数据处理协议,合规评估的复杂度会显著上升。而离线库部署在自己环境中,数据控制边界非常清晰,省心省力。
2.3 数据最小化的落地方式
在实际业务系统中,只保留真正必要的字段:存储省份、城市(脱敏后的属地信息),不存储原始IP、精确经纬度及运营商信息。
如果仅仅是为了展示IP属地,展示到省份或城市级别通常已经足够,完全没有必要留下更细粒度的数据。离线库方案正好契合这种思路:本地解析出国家、省份、城市,仅存储脱敏后的属地,原始IP随用随丢。
三、实操落地:三步实现“存归属地、不留原始IP”

第一步:部署IP离线库
下载IP离线库文件(.mmdb格式),部署在应用服务器本地,启动时加载至内存。
import ipdatacloud
# 加载IP数据云离线库(应用启动时加载一次,常驻内存)
ip_db = ipdatacloud.OfflineIPLib('/data/ipdb/ip_data_cloud.mmdb')
第二步:封装查询函数——只输出归属地,不落库原始IP
def get_ip_location_only(ip: str) -> dict:
"""获取IP归属地(仅返回省份/城市级别)
不记录原始IP,只返回脱敏结果"""
info = ip_db.query(ip)
return {
'province': info.get('province'),
'city': info.get('city')
}
# 业务调用
user_ip = request.remote_addr
location = get_ip_location_only(user_ip)
# 只存储脱敏后的归属地,原始IP不落库
sa ve_to_database({
'user_id': user_id,
'province': location['province'],
'city': location['city']
# 注意:没有存储原始IP
})
关键点:原始IP仅在请求生命周期内存在,解析完成后立即丢弃。
第三步:审计日志脱敏处理
如果因合规审计需要记录查询行为,日志中也应尽量只保留“查询时间、查询结果(省份/城市)”这类信息,而非直接记录原始IP。确实需要保留识别能力时,应优先考虑哈希处理后的结果,而不是明文留存。
四、总结
进行地域分析的同时避免存储用户IP,这一目标完全可以实现。离线库方案的核心价值在于:原始IP仅作为瞬时输入,在本地解析出归属地后立即丢弃,不落库、不留痕。业务系统最终只保存脱敏后的省份/城市信息,既能满足地域分析需求,也贴合“最小必要”的合规原则。
随着数据安全评估新规的正式施行,IP查询日志的合规审计只会越来越严格。与其等到出现问题再被动补救,不如提前把“存什么、不存什么”的边界清晰划分好。
