使用ip2location吧。 这个库,可以从IP地址快速查找国家,地区,城市,纬度,经度,邮政编码,时区,ISP,域名,连接类型,IDD代码,地区代码 等各种信息。 package main import ( "fmt" "github.com/ip2location/ip2location-go" ) func main() { ip package main import ( "fmt" "github.com/ip2location/ip2location-go" ) func main() { ip 总结 ip2location库的使用非常简单,直接加载文件数据库,调用相关函数即可。目前很多国家都推行GDPR政策,网站不允许记录ip等隐私信息,那么ip2location库就有了巨大的使用空间。 参考资料 github.com/ip2location/ip2location-go IP2Location.com
/hadoop-daemon.sh start datanode" 参数2无匹配部分使用示例: /usr/local/bin/process_monitor.sh "/usr/local/ip2location /bin/ip2location" "/usr/local/ip2location/bin/ip2location --num_worker_threads=8 --num_io_threads=2" 放在crontab中的示例: * * * * * /usr/local/bin/process_monitor.sh "/usr/local/ip2location/bin/ip2location " "/usr/local/ip2location/bin/ip2location --num_worker_threads=8 --num_io_threads=2"
今天我将从我的实际经验出发,结合真实压测数据,并以IP数据云、IPnews、IP2Location常见产品为例,系统分析在线IP查询API与本地IP离线库的我的取舍逻辑。 测试环境提要云服务器:4C/8G(同一可用区)操作系统:Linux x86_64测试IP数量:100万随机IPv4并发模型:多线程批量查询参考产品:IP数据云、IPnews、IP2Location指标关注 本地IP离线库IP2Location DB(BIN 文件,本地加载) 典型离线IP数据库方案,通过内存映射或索引结构进行查询。 本地离线库压测结果产品 形态 平均耗时 P99 延迟 QPS IP2Location 本地 BIN ~0.15 ms~0.30 ms300 万 IP数据云本地离线库~0.18 ms~0.35 查询从“外部服务调用”变成“本地基础能力”时,你获得的往往不仅是性能提升,而是:架构确定性成本可控性合规主动权这,才是本地IP离线库在大型系统中长期存在的根本原因,以上就是我以IP数据云、IPnews、IP2Location
前端由用户下拉二级菜单(河北省-石家庄市),服务端接收并存储location: "河北省-石家庄市" 需求版本:用户的所在地location字段:前端隐藏不展示所在地行,后端接收请求ip,调用ip转地址【ip2location 重要次要的测试用例看时间排期来完成覆盖】 后端3 postman配置接口并去掉location 查看是否报location参数缺失错误,如果报 说明开发有缺陷,未去掉参数校验 后端4 后端接收前端2的请求,日志打印请求ip,并打印ip2location 服务返回值,校验数据库是否对location正确存储 后端5 后端接收前端2的请求,将ip2location服务返回值为false或空,来验证数据库是否存储默认值"河北省-石家庄市" 后端6 请求中其他字段输入是否正常 ,存储是否正常 后端7 一般注册响应有时长需求,比如小于1秒,所以要评估ip2location服务耗时情况,避免耗时过久,影响用户体验 回顾 对于测试点和测试用例,推荐xmind工具以脑图形式整理下来。
使用本地数据库或API库 如果需要在本地处理大量IP到经纬度的转换,或者希望减少对外部API的依赖,可以考虑使用如IP2Location、GeoIP等提供的数据库产品。 IP2Location IP2Location提供了付费的版本IP2Location和免费版本IP2Location Lite,他们的区别在于付费版本数据更多更准确,详细对比参见版本比较。 IP2Location Lite提供了CSV和Bin两种格式的数据库,并根据数据丰富性分为多个不同的版本。这里以包含了国家、地区、城市、经度纬度、邮政编码、时区的DB11为例介绍如何使用。 IP2Location Lite和GeoLite2数据库的覆盖情况并没有一个确切的数据,两个数据库结合使用或许能提高查询命中率。
查询其用途一般是COM(商业)、DCH(数据中心/网络托管/传输)、SES(搜索引擎蜘蛛)等 备注: 这里分析IP是通过ip2location的免费版数据库, 后面会有详细的描述. 也有免费版IP数据库可以下载如ip2location等. 笔者使用了ip2location的免费版数据库: ? ip2location提供了免费版本的IP2Location™LITE IP-ASN和IP2Proxy™LITE数据库. IP2Location™LITE IP-ASN: 数据库提供了确定自治系统和编号(ASN)的参考. IP2Proxy™LITE: 数据库包含被用作开放代理的IP地址. IP2Location™LITE IP-ASN中无法查询到IP的使用类型, IP2Proxy™LITE数据较少中不一定会包含指定的IP.
风险信息:整合了IPinfo、ipregistry、ipapi、AbuseIPDB、IP2LOCATION、IPQS、DB-IP、Scamalytics、IPWHOIS等多家数据库的数据 多邮件服务连通性检测 Asia/Tokyo IP类型: 广播IP 二、IP类型属性 数据库: IPinfo ipregistry ipapi AbuseIPDB IP2LOCATION 0.07%|低风险 AbuseIPDB: 0|低风险 IPQS: 75|可疑IP DB-IP: |低风险 四、风险因子 库: IP2LOCATION
IP2Location:老牌选手,资料多,但“有点重”IP2Location算是很多开发者最早接触的一批IP库了吧,先说说使用感受。
目前支持的地址库有: 纯真 IPv4 离线数据库 ZX IPv6 离线数据库 Geoip2 城市数据库 (可选) IPIP 数据库 (可选) ip2region 数据库 (可选) DB-IP 数据库 (可选) IP2Location qqwry' IPIP 'ipip' Ip2Region 'ip2region', 'i2r' DBIP 'dbip', 'db-ip' IP2Location 'ip2location' 示例,设置v4地址库为纯真数据库,v6地址库为geoip2: export NALI_DB_IP4=qqwry export NALI_DB_IP6=geoip2
五、混合模式:离线+在线的工程实践成熟系统通常采用如下策略:登录请求 ↓本地 IP2Location 查询(毫秒级) ↓命中异常规则? 无论是使用IP数据云、IP2Location,还是IPnews, 只要将IP情报系统化地嵌入登录链路,就已经迈出了账号安全最关键的一步。
DNSPOD使用的IP地址库综合了多家商业及免费IP库数据(腾讯GSLB、腾讯QQ、IPIP.NET、IP2Location、MaxMind等),并根据DNSPOD的大量用户反馈进行修正,每月更新2-3
IP地理位置数据库:使用IP地理位置数据库(如MaxMind、IP2Location等)根据IP地址提供精确的地理位置信息,包括国家、城市和区域。
本地离线库 实时性 高,识最新IP 低,依赖更新 速度 慢(100-300ms) 快(毫秒级) 成本 按调用计费 一次性或年费 场景 登录、支付二次校验 高并发第一道过滤 参考 IP数据云、IPnews等 IP2Location
IP2Location:它提供准确的IP地址定位,并可返回与用户相关的有用信息,例如国家,地区,城市,经度,纬度,邮政编码等。
聚焦“真实性、稳定性、纯净度、适配性”四大维度,才能精准匹配需求:1.真实性:认准“原生静态住宅IP” 判断标准:必须是ISP直连的原生住宅IP段,非数据中心IP伪装;验证方法:用IP2Location
以下为各数据库编号,输出结果后将自带数据库来源对应的编号 ipinfo数据库 ① | scamalytics数据库 ② | virustotal数据库 ③ | abuseipdb数据库 ④ | ip2location
以下为各数据库编号,输出结果后将自带数据库来源对应的编号 ipinfo数据库 ① | scamalytics数据库 ② | virustotal数据库 ③ | abuseipdb数据库 ④ | ip2location
return False 京东实测效果: 异常会话检出率提升4倍 误报率降低至0.3% 模型训练成本下降60% 3.3 混合验证机制 采用三层验证架构: 基础验证层 IP信誉查询(MaxMind/IP2Location
选择香港服务器独立IP的4个技术要点优先验证IP“清洁度”:使用IP2Location、Whois或谷歌安全浏览工具检查IP是否有拉黑历史——避免选择曾关联垃圾邮件或恶意软件的IP。
nslookup [*] exec: nslookup > set type=NS > firetest.net msf5 > dig @ns3.dnsmadeeasy.com. firetest.net IP2Location