Ourren

关注技术,记录生活.

利用公开接口获取IP信息

| 留言

其实关于IP信息的讨论和文章非常多,但是选择适合一种简洁并且有效的方法无疑是最佳的。同时查询IP信息主要由两种方式:在线查询/接口,本地IP数据库。 现将目前这方面的资源总结如下:

在线平台/接口

虽然目前能够提供IP信息查询的平台很多,但是国内最著名的可能还是ip138,但是IP138目前能够提供的IP信息确实太少了,不管是做渗透还是做项目相信大家都不会采用这个查询,目前做得不错的主要有如下接口,鉴于IP信息存在国外和国内的差别,因此还是简单做下分类:

国内IP信息查询平台:

国外IP信息查询平台:

国内的查询相对比较简洁,而国外的在线平台给出的数据相对比较多,但是db-ip和ip2location每天都有限制查询,而ip-api则直接提供了API的查询接口,并且没有限制查询数量。

本地IP数据库

如果所做系统不能联网或者由于其它原因需要离线IP信息查询,国内和国外都有很著名的离线IP数据库,在项目需求不高时可以使用,现统计如下:

Python查询接口

Python写接口查询就相对比较容易了,但是鉴于很多接口都请求次数限制,因此需要考虑的问题还是比较多,总结如下:

  • Python下使用requests进行https请求时,可能会遇到证书问题,当设置“verify=False”时会出现警告信息,可以通过导入warning库进行处理,具体见这里;
  • 如果是采用网页进行请求匹配,最好直接用字符串查找替换(replace,split)就OK,正则会有一些问题;
  • 如果HTTP请求可以通过添加代理来绕过查询次数限制;

写了三个平台(ip-api, db-ip, ip2location)的查询接口,大家可以拿去直接用, 推荐ip-api这个接口。

项目地址:ip-api