在近年发布的网络黑灰产报告中,行业数据显示,日活跃作恶IP已突破千万级别。这些IP通过木马劫持正常家庭宽带用户的IP,动态变化快、与正常居民IP混杂交织,溯源和封禁难度较高。这些攻击的源头,绝大多数都来自数据中心IDC段或代理IP段。被薅的核心原因,不是活动规则有漏洞,而是网站无法在请求入口识别出“机房IP”和“代理IP”这两类高风险网络出口。通过IP风险识别库,可以快速命中这两种IP类型,毫秒级判断请求的“真实身份”,在不影响正常用户的前提下精准拦截批量采集流量,将薅羊毛拦截率从不足40%提升至90%左右。

一、为什么网站总是被数据采集薅羊毛?机房IP和代理IP是关键信号
数据采集和羊毛党常用的基础设施是“机房IP”和“代理IP”。机房IP属于云厂商或IDC服务商,成本低、可批量、可自动化、可快速更换;代理IP(特别是住宅代理)伪装成真实用户,动态变化快。
| 攻击IP类型 | 来源特征 | 风险等级 |
|---|---|---|
| 数据中心IP(机房IP) | 云厂商服务器、IDC机房出口 | 高危 |
| 住宅代理IP | 被劫持的真实家庭宽带(劫持共用代理) | 中高危 |
| 秒拨IP池 | 动态ADSL拨号池,同一C段IP频繁变化 | 高危 |
数据中心IP段特征是稳定——网段集中、端口特征固定,反爬系统可直接收录黑名单。攻击者可用的IP资源非常充裕,黑产日活跃作恶IP接近1500万个。劫持共用代理IP占比超过一半,这类IP由木马劫持正常家庭宽带用户产生,与真实居民IP高度混杂,行为模式也“类真人化”。
机房IP与住宅IP的区分依靠ASN(自治系统号)的归属类型:机房IP归属云服务商或IDC,住宅IP归属运营商。IP风险识别库通过分析ASN归属、BGP路由表、全网流量特征来区分不同类型。
二、三层筛选:用IP风险识别库拦截机房IP与代理IP

2.1 第一步:实时识别——毫秒级判断IP的网络类型与代理属性
数据采集攻击的第一道防线,是在请求入口判断“这个IP是真实用户还是机房脚本”。核心思路是使用IP离线库在本地完成查询。关键优势是:不依赖外网、微秒级响应、数据闭环合规。在线API受网络抖动和限流影响严重,而本地离线库查询延迟仅0.1-0.5毫秒。
以下代码基于离线库,批量查询IP的网络类型和代理属性。加载后即常驻内存,查询均在本地完成:
import ipdatacloud
# 加载IP数据云离线库(应用启动时加载,常驻内存,查询微秒级)
ip_lib = ipdatacloud.OfflineIPLib('/data/ipdb/ip_risk.mmdb', enable_risk=True)
def check_risk_ip(ip: str) -> dict:
info = ip_lib.query(ip)
net_type = info.get('net_type') # 数据中心/住宅/移动
proxy_type = info.get('proxy_type') # 住宅代理/VPN/无
risk_score = info.get('risk_score', 0) # 0-100
return {
'net_type': net_type,
'proxy_type': proxy_type,
'risk_score': risk_score
}
2.2 第二步:动态评分——搭建分层规则引擎
攻击者使用住宅代理时,net_type与正常用户相同(都是“住宅”),仅靠IP类型识别会漏判,需要多维信号分层判断。
| 信号层级 | 典型特征 | 推荐动作 |
|---|---|---|
| 高危 | net_type=数据中心 + proxy_type非空 | 直接拒绝,加入临时黑名单 |
| 中高危 | proxy_type=住宅代理 + risk_score>60 | 强制滑块验证或短信验证 |
| 中危 | risk_score>70 + 同一IP短时高频请求 | 限流或触发验证码 |
| 弱信号 | risk_score在40-70之间,首次访问 | 仅记录,暂不拦截 |
2.3 第三步:ASN聚合与批量IP段处置
机房IP和代理IP的ASN归属往往集中在特定云厂商或IDC,按ASN批量封禁,可实现“一次配置、批量生效”。将可疑IP按ASN聚合,若5分钟内同ASN下超过30笔异常请求,即可判定攻击基础设施,整段封锁。
三、实战案例:某电商平台防薅羊毛效果
某电商平台在活动入口接入IP风险识别库方案后,对比同期数据:
| 指标 | 优化前(仅频率限制) | 优化后(IP风险识别库) |
|---|---|---|
| 异常注册/领券拦截率 | 约42% | 96% |
| 数据中心IP识别率 | 无法识别 | 94% |
| 正常用户误拦率 | 2.1% | 0.3% |
| 单次IP检测耗时 | 依赖在线API 65ms | <0.5ms |

该平台的注册活动在接入方案前6小时内被薅走超2万张优惠券;接入后,类似攻击大概率在请求入口被阻断,真实用户转化率提升12个百分点。
四、总结
被数据采集薅羊毛的本质,是机房IP和代理IP在请求入口未被识别。离线库部署在内网,不依赖外网,单机QPS超250万,P99延迟0.35ms。无论是电商活动防刷单、内容平台防数据采集,还是游戏防工作室多开,这套方案能有效提升拦截率,且对正常用户体验影响较小。