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

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

(完)
git stash应用
把你的工作区缓存起来
虚拟机centos系统设置固定ip
方便shell和连接数据库操作
放假前摸鱼闲谈相亲
小时候以为人家墙上喷了个拆字,觉得好可怜都没房子住了,现在才知道那个字读富
安克创新涨停复盘
纪念第一个20cm
字节和心脏,只有一个能跳动。
随便谈谈
FFmpeg Batch AV Converter
推荐一款好用的格式转换工具
等待你的评论