总会有各种各样需要用到代理的场景
比如批量提交漏洞、批量注册、批量扫描....
简单总结一下
代理简介
IP 代理是一种网络技术,通过这种技术,用户可以隐藏其真实的 IP 地址,并使用另一个 IP 地址来代表自己进行互联网上的活动。IP 代理通常由第三方提供,用户通过连接到代理服务器,使得所有的网络请求都经过代理服务器转发,从而达到隐藏真实 IP 地址的目的
http、https和socks代理
用知乎上面的一张图
HTTP代理适合web端的代理,HTTPS代理添加了加密层
SOCKS代理支持的协议和适用范围最广
代码使用代理
代码里面使用代理很简单,以python requests为例,添加proxies参数即可
proxies = {'http': 'socks5://ip:port', 'https': 'socks5://ip:port'}
r = requests.get('https://www.taobao.com/help/getip.php', proxies=proxies, timeout=3)
print(r.text)
测试代理的可用性
访问这个地址 https://www.taobao.com/help/getip.php 会显示你当前的IP
通过判断IP是否切换、是否正常访问该网址,就可以知道代理是否可用
也可以使用快代理的接口 https://dev.kdlapi.com/testproxy 进行测试
需要认证的代理(以快代理为例
各大代理厂商已经给我们写好了demo
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""使用requests请求代理服务器
请求http和https网页均适用
"""
import requests
import random
page_url = "https://dev.kdlapi.com/testproxy" # 要访问的目标网页
# API接口,返回格式为json
api_url = "api_url"
# API接口返回的ip
proxy_ip = requests.get(api_url).json()['data']['proxy_list']
# 用户名密码认证(私密代理/独享代理)
username = "username"
password = "password"
proxies = {
"http": "http://%(user)s:%(pwd)s@%(proxy)s/" % {'user': username, 'pwd': password, 'proxy': random.choice(proxy_ip)},
"https": "http://%(user)s:%(pwd)s@%(proxy)s/" % {'user': username, 'pwd': password, 'proxy': random.choice(proxy_ip)}
}
headers = {
&#