Python 获取IP地址并通过IP查询归属地

image.png

Python 获取IP地址并通过IP查询归属地。

不知道从啥时候起,国内的大论坛评论,回答啥的都已经开始显示IP地址,也可能是因为之前网暴啥的太多,来警戒部分网名网络不是不法之地。还有一些无脑地域黑的。

刚好自己的博客之后也有这个需求,就学习一下。

python获取ip

要获取地址当然就是要先获取ip,然后通过接口查出地址。 这边我用的是nginx代理搭的网站,接口框架是flask。

          
  • 1
  • 2
from flask import request ip = request.remote_addr

假如此方法直接获取ip那么得到的因为nginx反代得到的是127.0.0.1。

那么在nginx配置里我们要把ip地址加载请求header里

nginx配置

          
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
server { listen 80; server_name manage.kedong.me; location / { root /root/blogmanage/dist; index index.html index.htm; } location /api { proxy_pass http://127.0.0.1:5000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; } }
image.png
Snipaste_20220809_170732.jpg

就可以在request.headers里取到IP了

通过ip获取地址

找的网上的接口 https://ip-api.com/ ,之后万一失效就在找,我测试好像这个接口必须翻墙才能用,服务器在国内的可能要另外找一个,代码就用requests直接请求下

          
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
from flask import request import requests @backstage.route(BASEURL + "/user_ip", methods=["GET"]) def user_ip(): ip = request.headers.get("X-Real-IP") url = 'http://ip-api.com/json/{0}?lang=zh-CN'.format(ip) r=requests.post(url) return r.json()
image.png

改变自己的归属地

那么网上的归属地显示无非是改变自己的ip,如果我们代理一下就可以改变了。

比如我用的v2ray 改改代理 把路由改全局在知乎上就变了

image.png
image.png

选了个香港的

image.png

选了个台湾的

image.png

当然现在真要查来源还是肯定有方法查到,除非你都是蒙面现金交易哈哈。

(完)
一本书读懂财报--资产负债表
股东权益=资产-负债
五一假期结束
主打一个字:宅
text标签出现中英文自动换行
word-break:break-all和word-wrap:break-word区别
GitHub Copilot
大大提升你写代码的效率
2020年终总结
再见2020,我要去拥抱2021啦!Happy new year!
放假前摸鱼闲谈相亲
小时候以为人家墙上喷了个拆字,觉得好可怜都没房子住了,现在才知道那个字读富
等待你的评论