某App运营团队想分析用户地域分布,用于优化区域推送策略。技术方案选型时,产品经理坚持“必须拿到用户IP才能做分析”,法务则明确反对,“存储用户IP需要单独告知和同意,而且IP是个人信息,不能随便存”。双方僵持不下。业务做地域分析存IP,法律风险到底有多大?有没有既能做分析、又符合隐私合规的方法?
针对“既要地域分析又要保护隐私”的矛盾,IP离线库方案给出了一条可落地的路径:在本地完成IP解析,只存储脱敏后的归属地信息,原始IP即时丢弃,既保护用户隐私,又满足业务分析需求。在实际落地中,IP数据云提供的离线库支持内网私有化部署,IP数据不出域,因此不涉及向第三方提供个人信息的情况。下面从法律依据到技术实现,完整拆解。
一、法律依据:存IP和存归属地,性质不同
IP地址是否属于个人信息? 《个人信息保护法》第四条规定,个人信息是“与已识别或者可识别的自然人有关的各种信息”。IP地址可被用于关联特定用户,因此原始IP地址属于个人信息。
存归属地呢? 《个人信息保护法》第四条同时明确,个人信息“不包括匿名化处理后的信息”。归属地如“广东省”“深圳市”无法指向具体个人,不属于个人信息。存归属地无需用户单独同意,不受个人信息保护法的存储限制。
简言之:存IP=收集个人信息,受个保法约束;存归属地=存储匿名化数据,不违规。
二、业务落地:不做地域分析不行,存IP又不行
业务对地域分析的需求是真实且迫切的,至少有四个场景绕不开:
- 运营分析:用户分布在哪些城市?哪个区域的渗透率高?
- 广告投放:广告预算应该向哪些地区倾斜?
- 内容合规:平台需要展示用户IP属地(根据《互联网用户账号信息管理规定》第十二条)。
- 风控审计:跨境支付、金融交易需要记录IP归属地以满足监管报送。
这些场景本质上只需要“用户来自哪个城市/省份”,而不是“用户的具体IP是什么”。存原始IP是过度的,存归属地刚刚好。
三、解决方案:IP离线库 + 只存归属地
这套方案的核心逻辑非常简单:IP只在内存里出现一瞬间,解析出归属地之后就丢掉,永远不落库。
3.1 整体架构
用户请求 → 获取公网IP → 调用本地离线库解析归属地 → 存储国家/省份/城市 → 原始IP立即丢弃
3.2 为什么用离线库而不是在线API?
| 对比项 | 在线API | 本地离线库 |
|---|---|---|
| IP是否外发 | 是,发送给第三方 | 否,在内网 |
| 合规风险 | 向第三方提供个人信息,需用户单独同意 | 数据不出域,合规压力小 |
| 存储方式 | 依赖API日志,不可控 | 自主可控 |
| 查询延迟 | 30-80ms | <0.5ms |
每一次将用户IP外发第三方查询,都可能构成“向第三方提供个人信息”的行为,需要用户单独同意。2026年个人信息保护专项治理行动中,明确从严整治“以风险防控为由,超范围收集个人信息”等违规行为。离线库IP不出域,是满足合规要求的前提。
3.3 代码实现:解析即丢弃
以下代码展示如何在本地解析IP归属地,只存储脱敏后的属地信息(以某离线库SDK为例):
import ipdatacloud
# 加载IP数据云离线库(应用启动时执行一次)
ip_db = ipdatacloud.OfflineIPLib('/data/ipdb/ip_data_cloud.mmdb')
def analyze_user_region(ip: str) -> dict:
"""
解析用户IP归属地,原始IP不存储
"""
# 查询IP归属地(纯本地操作,IP不出内网)
info = ip_db.query(ip)
# 只提取脱敏后的属地信息
region_info = {
'country': info.get('country'),
'province': info.get('province'),
'city': info.get('city'),
# 注意:不存储原始IP
}
# 原始IP在函数返回后自动释放,不落库
return region_info
# 业务调用示例
user_ip = request.remote_addr
region = analyze_user_region(user_ip)
# 存入数据库的只有国家、省份、城市
save_to_db(region) # 不包含原始IP
这段代码的关键点: 原始IP只作为函数参数传入,在内存中完成解析后即被释放,不写入任何日志或数据库。
四、合规优势与业务价值
| 维度 | 存原始IP | 只存归属地(IP离线库方案) |
|---|---|---|
| 法律性质 | 个人信息 | 匿名化数据 |
| 用户同意 | 需要单独告知并取得同意 | 不需要 |
| 存储限制 | 受最小必要原则约束 | 无限制 |
| 数据出境风险 | 在线API存在外发风险 | 无(内网闭环) |
| 审计合规 | 需说明存储必要性 | 无合规障碍 |
| 业务分析 | 可以做 | 同样可以做 |
这套方案已在实践中得到验证。内容平台合规展示IP属地时,采用的就是类似做法:在本地将IP解析为国家、省份、城市后,只存储脱敏后的属地信息。地域分析、用户画像、广告投放等场景,可以用同样的逻辑落地:拿到你需要的归属地,忘掉你不该存的IP。
五、总结
地域分析和隐私保护之间的矛盾,本质上是“存IP”和“存归属地”之间的认知混淆。IP是个人信息,归属地不是。 通过部署IP数据云离线库,在本地完成IP解析,只存储脱敏后的归属地信息,原始IP即时丢弃,既可以满足业务对地域分析的需求,又能保护个人隐私信息。
该方案对于需要做地域分析又不想存IP的业务来说,这是一条成熟且可落地的技术路径。建议先从单个业务场景(如用户画像或运营报表)开始接入,验证数据质量和合规流程后再逐步推广。