标签 归属地 下的文章

客户要做代发微信红包的活动,无一例外地招来黑产的攻击盗刷作弊。
和黑产斗智斗勇内耗严重。

活动数据始终容易被伪造,所以思路最后还是落在增加他们的违法成本上,让其食之无味知难而退。

主要方式是针对可疑的IP建立黑名单机制,因为更换IP或者找寻特定地理位置的代理的IP成本极高,即使它们在目标地区,更换动态IP也能减缓其速度。

需求前提铺垫到此为止,以下是实现过程。

考虑到这种查库存在误差和过时失效等精确度的问题。IP归属地和 手机号码归属地进行结合判定,提高判断结果的可信程度。


- 阅读剩余部分 -

需要一个精确到城市且保持更新的归属地库,以下收集了一些,纯备忘不推荐

线上接口

免费接口(淘宝)

https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=13922121234

返回

__GetZoneResult_ = {
    mts:'1392212',
    province:'广东',
    catName:'中国移动',
    telString:'13922121234',
    areaVid:'30517',
    ispVid:'3236139',
    carrier:'广东移动'
}

缺点:只精确到省份和运营商

付费接口(NOWAPI)

https://www.nowapi.com/api/phone.get

免费版每小时 200次请求频率限制,
缺点:收费,不支持批量

其他还有很多类似的接口没有继续再试下去,被贫穷勒住了命运的咽喉的我..决定换个思路

下载归属地库

果不其然这思路也不是什么蓝海处女地,搜索之下已经被各路数据商人开发过了,一个一个“2020最新归属地库”待价而沽

中间浪费的时间略... 兜转许久又回到python门前。 找到了 phone库

https://github.com/ls0f/phone

安装

pip install phone

代码

from phone import Phone
p = Phone()
res = p.find('13922121234')

print(res)
print(res["city"])

输出

{'phone_type': '移动', 'city': '广州', 'phone': '13922121234', 'area_code': '020', 'province': '广东', 'zip_code': '510000'}
广州
进程已结束,退出代码 0

虽然数据库不是非常的新(2018.10) 够用而且可以本地跑,爱怎么批量或高并发都没关系,性能没有后顾之忧了。

*有点跑题,不改了