Django获取访问者IP + 代理测试

想要获取访问者的IP(公网地址),就必须要把项目部署在服务器上

一:前期准备

1.需要的材料

    一台有公网IP的服务器 Django项目:https://gitee.com/xuexianqi/spider-test

2.采用的方案

    云服务器上安装Docker Docker中用CentOS拉起Django项目

3.需要注意的点

    Django项目的settings中的ALLOW_HOST需要改为[*] 启动的时候,允许访问的IP设置为:0.0.0.0 服务器的端口(安全组)需要放行

二:项目部署

1.安装 并 启动Docker

http://www.xuexianqi.top/archives/664.html

2.拉取CentOS7.9

docker pull centos:7.9.2009

3.启动CentOS7.9

    启动的时候要进行端口映射
docker run -dit -p 8000:8000 --name centos01 centos:7.9.2009
    查看已启动的容器
docker ps

4.进入容器

docker exec -it centos01 bash

5.安装一些需要的工具

    vim:文本编辑器 - 用于编辑文件 net-tools:网络工具 - 用于查看网络 和 ping其他网络 python36:Python解释器 - 用于安装Django项目的依赖 git:版本控制工具 - 用于拉取项目
yum install vim net-tools python36 git -y

6.测试网络

ping www.baidu.com

7.拉取Git项目

① 创建并进入自定义的目录

mkdir /Test && cd /Test

② 拉取Django项目

git clone https://gitee.com/xuexianqi/spider-test.git

8.进入项目,安装依赖

项目所需的依赖都在requirements.txt中,用pip3可以一键安装(这里指定pip豆瓣源)
cd spider-test
pip3 install -r requirements.txt -i https://pypi.douban.com/simple/

9.迁移数据

① 由于用的是Sqlite数据库,需要修改一些代码

# 用vim编辑器打开
vim /usr/local/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py

# 显示代码行号(大概在第66行)
:set nu

# 按i进入插入模式,注释掉第66行
i

# 注释完成,保存并退出
Esc
:wq
因为这里的代码会检测sqlite的版本,版本过低就直接报错 所以直接注释掉检测的代码即可
注释前
注释后
python3 manage.py makemigrations
python3 manage.py migrate

10.启动项目

python3 manage.py runserver 0.0.0.0:8000

三:访问测试

1.PC端测试

① 先去百度一下当前的IP地址

② 浏览器访问测试

2.移动端测试

    移动端需要用流量来测试,如果连了无线网,那么结果会和同一局域网的PC端一样

① 查看移动端IP地址

② 访问Django项目的IP

③ 服务端监测到的IP

四:代理测试

1.不试用代理

不使用代理,就是单纯地用本机真实的IP地址去访问

import requests

url = http://[公网IP]:[端口号]    # 这里替换成自己的URL即可

res = requests.get(url)

print(res)
print(res.text)

2.使用代理

import requests

proxies = {
          
   
    http: 113.195.152.50:9999,
}

url = http://[公网IP]:[端口号]    # 这里替换成自己的URL即可

res = requests.get(url, proxies=proxies)

print(res)
print(res.text)
经验分享 程序员 微信小程序 职场和发展