获取本地IP以及地理位置

简介: 获取本地IP以及地理位置
from urllib.request import urlopen
my_ip = urlopen('http://ip.42.pl/raw').read()

import requests
import IPy

def get_location(ip):
    url =  'https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?co=&resource_id=6006&t=1529895387942&ie=utf8&oe=gbk&cb=op_aladdin_callback&format=json&tn=baidu&cb=jQuery110203920624944751099_1529894588086&_=1529894588088&query=%s'%ip
    # headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36'}
    r = requests.get(url)
    r.encoding = r.apparent_encoding
    html = r.text
    print(html)
    c1 = html.split('location":"')[1]
    c2 = c1.split('","')[0]
    return c2

def check_ip(ip):
    try:
        IPy.IP(ip)
        print(IPy.IP(ip))
        return True
    except Exception as e:
        print(e)
        return False

if __name__ == '__main__':
    print(my_ip)
    ip = str(my_ip).strip('b')
    print(ip)
    ip=eval(ip)
    print(type(ip))
    print(ip)
    if check_ip(ip):
        print('IP位置为:',get_location(ip))
相关文章
|
算法 JavaScript Java
使用强大的离线IP地址定位库ip2region获取城市信息
ip2region - 准确率99.9%的离线IP地址定位库,0.0x毫秒级查询,ip2region.db数据库只有数MB,提供了java、php、c、python、nodejs、golang、c#等查询绑定和Binary,B树,内存三种查询算法。
使用强大的离线IP地址定位库ip2region获取城市信息
|
前端开发 Android开发
Electron 中 webview 如何与主进程渲染进程进行事件监听通信
Electron 中 webview 如何与主进程渲染进程进行事件监听通信
|
13天前
|
弹性计算 运维 安全
阿里云轻量应用服务器 vs ECS:区别 + 选择指南,看完不踩坑!
阿里云ECS是企业级云服务器,支持高并发、弹性伸缩与复杂架构,适合中大型应用;轻量应用服务器则面向个人开发者,预装应用镜像、操作简单、成本可控,适用于博客、学习测试等轻量场景。二者在性能、功能、运维及计费上各有侧重,按需选择即可。(239字)
192 1
|
3月前
|
网络协议 API 定位技术
全球IP归属地查询免费API详细指南
接口盒子提供免费全球IP归属地查询API,支持IPv4/IPv6,返回国家、省、市、运营商及经纬度等详细信息。多通道查询保障准确性,无每日调用上限,适用于网站分析、安全防护、内容本地化等场景。
739 0
|
5月前
|
JSON NoSQL 测试技术
从手动到全自动:我们如何用Dify重构了API回归测试流程
本文分享团队如何借助Dify工作流平台,将耗时3天的手动API回归测试升级为3小时完成的全自动流程,实现测试效率与质量双提升,推动测试从成本中心向价值创造转型。
|
缓存 JavaScript 前端开发
【Vue面试题七】、SPA (单页面) 首屏加载速度慢怎么解决?
这篇文章探讨了单页面应用(SPA)首屏加载速度慢的问题,并提供了多种解决方案,包括减小入口文件体积、静态资源本地缓存、UI框架按需加载、图片资源压缩、组件重复打包、开启GZip压缩和使用服务端渲染(SSR),以优化资源加载和页面渲染,改善用户体验。
【Vue面试题七】、SPA (单页面) 首屏加载速度慢怎么解决?
|
存储 Java 定位技术
获取ip所在城市
本文介绍了如何在SpringBoot应用中通过IP地址快速获取用户的国家、省份和城市信息。首先,通过引入GeoLite2 City数据库并整合相关依赖,接着下载并配置GeoLite2 City数据库文件。然后,创建地址获取工具类和Controller接口,最后进行测试以确保功能正常。此方法简单高效,适用于多种应用场景。
|
Java 定位技术 数据库
通过ip获取地理位置信息
通过ip获取地理位置信息
1641 0
|
算法 关系型数据库 MySQL
Mysql为何建议使用自增id作主键,有什么优点
Mysql为何建议使用自增id作主键,有什么优点
1852 1

热门文章

最新文章