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

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

(完)
chatGPT
简单谈谈chatGPT和对写代码运用
好想躺着赚钱
低保码农撑不住了
老妈,母亲节快乐
向我们的衣食父母鞠躬
React setState
setState进阶理解
北高峰爬山
天下第一财神庙,抽了个签
FFmpeg Batch AV Converter
推荐一款好用的格式转换工具
等待你的评论