python 通过ip获取城市_python中通过客户端IP拿到所在城市和当地天气信息—附带项目案例...

首先,需求分析:

1、拿到客户端IP

2、通过IP拿到客户端所在地区

3、通过地区拿到当地天气

4、整合功能,展示给用户

第一步,如何拿到用户IP

我们以Django环境为例

# 客户端的请求,IP信息会在请求头中

request.META['REMOTE_ADDR']

# 或

request.META.get('HTTP_X_FORWARDED_FOR')

里面

为什么是或呢?

这是因为有些服务器做了代理或者使用nginx等,在REMOTE_ADDR中会拿到本地回环地址:127.0.0.1

这时候真实的客户端IP在HTTP_X_FORWARDER_FOR中。

如果你是测试环境,项目跑在内网,又想拿到本地公网IP做测试,那怎么做呢?诶,这里也有办法

import re,requests

url = 'http://txt.go.sohu.com/ip/soip'

response = requests.get(url)

text = response.text

ip = re.findall(r'\d+.\d+.\d+.\d+', text)[0]

print("默认访客ip:%s"%ip)

通过requests模块和re模块向这个网址发送请求和解析匹配,你就可以拿到你的公网IP

第二步、找到对应城市

好了,IP解决了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值