今天小张由于业务需求,需要根据用户的访问ip精确定位用户的国家、城市、及经纬度等信息,从网上进行搜索,发现不少的网站,但几乎没有完全符合的,有个别符合的还需要花钱,大家也知道,现在是信息共享的时代,难道真没有免费的API接口可调用吗?

继续搜索,终于功夫 不负有心人,找到了,就是它,就是它 。先不急,先看代码吧。

import requests,traceback,logging,random
from retry import retry user_agent_list = [
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 "
"(KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
"Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 "
"(KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 "
"(KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 "
"(KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 "
"(KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 "
"(KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
"Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 "
"(KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 "
"(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 "
"(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 "
"(KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 "
"(KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 "
"(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 "
"(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
]
headers = {
'Connection': 'close',
"User-Agent": random.choice(user_agent_list)
}
#根据ip查询国家
@retry(Exception, tries=2, delay=6)
def ip_map(ip):
url=f"http://ip-api.com/json/{ip}?fields=61439&lang=zh-CN"
response=requests.get(url=url,headers=headers,timeout=5).json()
print(response) if __name__ == '__main__':
try:
ip_map("212.32.35.64")
except:
val = traceback.format_exc()
logging.error("错误位置信息为>>>%s" % val)

  结果如下:

{
'status': 'success',
'country': '英国',
'countryCode': 'GB',
'region': 'WLS',
'regionName': 'Wales',
'city': 'Radyr',
'zip': 'CF15 8EN',
'lat': 51.5318,
'lon': -3.25879,
'timezone': 'Europe/London',
'isp': 'MISTRAL',
'org': 'Frontier Limited',
'as': 'AS8897 KCOM Group Public Limited Company',
'query': '212.32.35.64'
}

具体代码不过多解释,so_easy,先看下他们官网的介绍

小张来给大家翻译下(其实就是用的谷歌浏览器的翻译功能^_^):

怎么样是不是很强大。

具体官方API文档,可扫描右上角二维码,关注后回复IP,获取详细文档。

创作不易,期待你的打赏!!

工具推荐-根据IP地址精确定位经纬度(永久免费)的更多相关文章

  1. 通过百度获取IP地址对应的经纬度

    /** * 获取指定IP对应的经纬度(为空返回当前机器经纬度) *  * @param ip * @return */ public static String[] getIPXY(String ip ...

  2. Android中由IP地址查询经纬度坐标的实例

    大家都知道,根据IP地址就可以知道它所在的具体位置,在Android中同样可以由IP地址得到它的位置,即具体的地理经纬度坐标. 本文就直接以代码的方式演示如何根据IP地址查询地理经纬度坐标位置,下面的 ...

  3. Linux 使用 arp-scan 检查是否存在IP地址冲突

    如果前期没有做好IP地址规划,即使有IP地址统一不小心也会犯错!推荐服务器IP地址使用要登记明细,上次机房批量部署服务器,就将已再用的IP又分配给另一台服务器,还好对业务没有造成大的影响. 那么在给服 ...

  4. 转:为什么根据IP地址查询物理所在地,而不是mac地址?

    来自 https://mp.weixin.qq.com/s/aOZQGMnMI2nkX4-qcJL4WQ 读者 不是说mac地址是计算机网卡唯一的地址吗?这样不是可以直接定位到某一台机器吗?为什么要用 ...

  5. 通过纯真IP地址实现根据用户地址显示信息

    为了实现中关村在线商品报价中通过用户的地理位置信息显示相应的报价. 示例地址:http://detail.zol.com.cn/lens/index224693.shtml 现把我做的使用asp.ne ...

  6. Python实现IP地址归属地查询

    一.使用淘宝IP地址库查询 使用淘宝的Rest API,可以快速查询IP地址的归属地: 图00-淘宝IP地址库RestAPI使用说明 图01-使用淘宝免费IP地址库-查询IP归属地 存在问题:淘宝的免 ...

  7. 如何知道某个网站的IP地址

    命令行窗口得到ip地址 1按键盘上的win键(alt键左面的小窗口)+R键 调用运行 2输入cmd 确定 调用系统的 命令行窗口 3在命令行窗口里输入 ping + 空格键 + www.*****.c ...

  8. Windows:查看IP地址,IP地址对应的机器名,占用的端口,以及占用该端口的应用程

    Windows 服务器系列: Windows:查看IP地址,IP地址对应的机器名,占用的端口,以及占用该端口的应用程 Windows:使用Dos命令管理服务(Services) Windows:任务调 ...

  9. PHP 依据IP地址获取所在城市

    有这种需求,须要依据用户的IP地址,定位用户所在的城市. 本文记录性文章,无逻辑性.有这样需求的朋友.能够直接拷贝使用.直接上代码,不需赘述. <? php header('Content-Ty ...

  10. linux 手动配置ip地址方法

    手工配置静态的IP地址 也就是手工配置IP地址.子网掩码.网关和DNS. 设置方法如下: vi /etc/sysconfig/network-scripts/ifcfg-eth0 编辑本地网卡的配置文 ...

随机推荐

  1. Golang-流程控制4

    http://c.biancheng.net/golang/flow_control/ Go语言if else(分支结构) 在Go语言中,关键字 if 是用于测试某个条件(布尔型或逻辑型)的语句,如果 ...

  2. 抽象接口USB的实例化

    /* * 接口的使用 * 1.接口使用上也满足多态性 * 2.接口,实际上就是定义了一种规范 * 3.开发中,体会面向接口编程! */ public class USBTest { public st ...

  3. 搞懂TVS管,有这篇文章就够了

    摘要:本文主要介绍TVS的工作原理.关键参数和选型. TVS(Transient Voltage Suppressors,瞬态电压抑制器)又称雪崩击穿二极管,是一种高效电路保护器件,主要是保护电路不受 ...

  4. Q:rdp远程桌面如何传输文件

    通过自带的rdp远程连接传输文件 方法: 1.按下win+r键 输入 mstsc.打开远程桌面选择选项如下图 2.选择本地资源选项卡,打开详细信息选项 3.在详细信息选项卡中点开驱动器前面的+号,选择 ...

  5. shell 变量的运算、保存硬件信息脚本

    变量的数学运算 方法一:expr ##加减乘除 [root@localhost ~]# num1=10[root@localhost ~]# num2=16[root@localhost ~]# ex ...

  6. ctfshow web入门 文件包含全部wp

    Web78 <?php if(isset($_GET['file'])){ $file = $_GET['file']; include($file); }else{ highlight_fil ...

  7. .NET周刊【2月第2期 2025-02-09】

    国内文章 开箱即用的.NET MAUI组件库 V-Control 发布了! https://www.cnblogs.com/jevonsflash/p/18701494 文章介绍了V-Control, ...

  8. c# 半导体/led行业 晶圆片WaferMap实现 map图实现入门篇

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/18729664 第一 简介 又是好久没更新了,今天介绍个半导体/led行业生成晶圆片map图的小 ...

  9. 【软件开发】vcpkg学习笔记

    [软件开发]vcpkg 学习笔记 "vcpkg"是一个免费开源的 C++包管理器,可以以此很方便的处理第三方库的接入,且可嵌入进 CMake 中. 入门 入门教程请参照: http ...

  10. 批量视频剪辑软件开心版合集——CRVideoMate、固乔剪辑助手、批量剪辑大师MV批量创作大师、ai全自动剪辑

    CRVideoMate(推荐) 非常好用的批量剪辑工具,如果是简单的基础处理完全是够用了. 软件的官网:http://www.cr-soft.net/crvideomate.html 如果经济允许推荐 ...