ip作为识别和定位用户的手段来说,对互联网企业起着至关重要的作用,特别是在精准营销、反欺诈等业务方面。本文描述如何简单的去构建自己的ip地址库。
拿来主义
实际上,对大部分用户来说,如果要求不高,完全可以拿现成的资源来使用:
吃饱了撑着
但对我们这样的风控公司来说,现成的资源有以下不足:
1.需要离线的数据库。我们的产品是提供私有化的大数据风控平台,由于涉及的信息比较敏感,需要隔绝外网来保证数据隐私性和安全性,api的方式不合适
2.需要定期更新的数据库。ip地址经常变化,需要精准度高、更新频繁的来源,评测下来,现存的第三方提供商还是存在数据覆盖率和准确性方面的不足
3.需要规范化的数据。我们需要手机、身份证、ip等多个维度的归属地,但数据来源多样,比如:在很多场合,这种数据不一致没关系,但我们的风控引擎会拿来作比较计算,这种不一致会导致大量的计算偏差,引起误报
4.有一些优秀的数据源提供精确到区的数据,但我们不需要采用。ip分配多变,而且运营商分配顶多到市一级,所以区县级的数据准确度会有很大挑战,影响风控使用,建议是先弃掉
5.对于非主动获取的第三方数据,习惯上不信任,需要去进行评估和重新验证,贸然使用会有不良后果
所以,我们做了一些工作,来构建自己的ip库,方便我们的风控系统使用。本文余下部分会描述我们的大概思路(具体实现会采用简要方法来说明)。
ip库原始数据获取
作为一个非专业公司,不可能像 ipip.net 那样花很大的力气去撒点做网络探测和分析,最省事的就是爬取网上的资源。这里举一个简单例子,拿局域网内最大的搜索引擎公司作为数据来源。
写一个一行的爬虫:
整条命令通过shell管道来实现,分别包括:
1.生成ip c段地址列表,由seq来生成相应的数字
2.将数字转为ip的字符串形式,由awk来转换
3.利用curl向度娘发起请求
4.等。这个简易爬虫效率上并不高,而且需要执行256*256*256=16777216次访问,所以需要超过1天来完成。直接扔服务器上让他慢慢跑吧
ip库构建
去重处理
原始数据拿来后,需要进行整理,首先需要去掉重复信息,比如原始的数据是这样的
这些c段紧靠在一起,完全没有必要,再通过一行命令去做去重
说明:
1.首先按照ip进行排序,由于之前有多进程并发操作,结果数据会有乱序情况出现,不利于去重
2.利用awk,只输出归属地相同的邻近行的第一行
3.最终得到的结果中,任意相邻的两行地址都不一样
地理位置规范化
这里涉及到我们去建地址库的初衷,由于有的数据来源地理位置不统一,比如有的显示市,有的显示区,有的县级市地级市傻傻分不清楚。所以需要对所有归属地进行规范化处理。
整个过程略复杂,我们通过算法去自动生成和校正如下的映射表,然后再利用规范化算法得到统一的地址。整个过程略复杂,而且映射表数据需要不停的自动化构建来校准,就不展示更多的细节。
山东:
名称: 山东省
城市:
济南:
名称: 济南市
章丘:
名称: 济南市
青岛:
名称: 青岛市
即墨:
名称: 青岛市
平度:
名称: 青岛市
胶南:
名称: 青岛市
莱西:
名称: 青岛市
淄博:
名称: 淄博市
枣庄:
名称: 枣庄市
滕州:
名称: 枣庄市
东营:
名称: 东营市
烟台:
名称: 烟台市
龙口:
名称: 烟台市
莱阳:
名称: 烟台市
莱州:
名称: 烟台市
蓬莱:
名称: 烟台市
ip库生成
得到最终数据后,需要做最后打包。
一种最简单的方式是直接将上述数据作为最终数据,然后使用的时候读入,塞进一个 treemap 即可。但这种方式效率比较低,生成的包也比较大,从而影响到使用地理库的应用。
我们采用了另一种方法,逆向了ipip.net的数据格式,用该格式打出自己的数据包,这里有几个好处:
1.该数据格式比较精简,能大大减少最终胜出的数据包大小
2.由于用户比较多,网上有多语言的客户端,方便借鉴(不过实际使用还需要自己重新优化,网上和官方的库效率还是较低;要用的话也尽量用官方的库,有些网友的库不正确)
3.由于我们会共享数据给一些关系好的客户,所以采用标准的格式,他们只要替换数据文件即可
生产级别的ip库构建
上文描述了构建的大概过程,但核心的部分由于篇幅限制采用了简易方法进行说明,如果要做生产级别的还需要注意一下方面:
1.更好的原始数据获取
2.持续的数据获取,以及自动化的校准库和ip库构建。由于ip数据变化频率高,只有不停更新才能保证更好的精度
3.统一ip、手机、身份证、wifi地址等数据做统一的地理信息库。单个维度的信息往往只能用来做展示,如果有强计算需求的话需要做统一的数据库
本文转自岂安科技微信公众号:bigsec,已取得授权
本文名称:简易构建适合风控系统的IP库
当前链接:http://www.shufengxianlan.com/qtweb/news9/330609.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联