通过Python语言配置IPNut 代理:
进入IPNut 平台购买并获取信息,这里以静态IP为例(假如端口是 http://proxy.ipnut.com:28001,账号: ipnut,密码: 123456789)。
1. SOCKS5代理示例 #
import requests
import socks
import socket
from urllib.parse import urlparse
import json
def socks5_proxy_demo():
"""
SOCKS5代理演示
"""
print("=== SOCKS5 代理演示 ===")
# 代理配置
proxy_host = "proxy.ipnut.com"
proxy_port = 28001
proxy_username = "ipnut"
proxy_password = "123456789"
# 设置SOCKS5代理
socks.set_default_proxy(
socks.SOCKS5,
proxy_host,
proxy_port,
username=proxy_username,
password=proxy_password
)
socket.socket = socks.socksocket
try:
# 测试请求
test_url = "http://httpbin.org/ip"
print(f"通过SOCKS5代理访问: {test_url}")
response = requests.get(test_url, timeout=30)
print(f"状态码: {response.status_code}")
print(f"响应内容: {response.text}")
except Exception as e:
print(f"请求失败: {e}")
finally:
# 恢复默认socket
socks.set_default_proxy()
socket.socket = socket._socketobject
def socks5_with_requests_session():
"""
使用requests session的SOCKS5代理
"""
print("\n=== SOCKS5 Session 代理演示 ===")
proxy_host = "proxy.ipnut.com"
proxy_port = 28001
proxy_username = "ipnut"
proxy_password = "123456789"
# 构建代理URL
proxy_url = f"socks5://{proxy_username}:{proxy_password}@{proxy_host}:{proxy_port}"
# 创建session
session = requests.Session()
session.proxies = {
'http': proxy_url,
'https': proxy_url
}
try:
# 测试多个端点
test_urls = [
"http://httpbin.org/ip",
"http://httpbin.org/user-agent",
"http://httpbin.org/headers"
]
for i, url in enumerate(test_urls, 1):
print(f"\n请求 {i}: {url}")
response = session.get(url, timeout=30)
response.raise_for_status()
print(f"状态码: {response.status_code}")
data = response.json()
print(f"响应数据: {json.dumps(data, indent=2)}")
except Exception as e:
print(f"请求失败: {e}")
def socks5_custom_requests():
"""
SOCKS5代理自定义请求
"""
print("\n=== SOCKS5 自定义请求演示 ===")
proxy_host = "proxy.ipnut.com"
proxy_port = 28001
proxy_username = "ipnut"
proxy_password = "123456789"
proxy_url = f"socks5://{proxy_username}:{proxy_password}@{proxy_host}:{proxy_port}"
try:
# 自定义请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Accept': 'application/json'
}
response = requests.get(
"https://httpbin.org/headers",
proxies={
'http': proxy_url,
'https': proxy_url
},
headers=headers,
timeout=30
)
print(f"状态码: {response.status_code}")
data = response.json()
print(f"响应头信息: {json.dumps(data, indent=2)}")
except Exception as e:
print(f"请求失败: {e}")
2. HTTP代理示例 #
import requests
from urllib.parse import urlparse
import json
import time
def http_proxy_demo():
"""
HTTP代理演示
"""
print("=== HTTP 代理演示 ===")
# 代理配置
proxy_host = "proxy.ipnut.com"
proxy_port = 28001
proxy_username = "ipnut"
proxy_password = "123456789"
# 构建代理URL
proxy_url = f"http://{proxy_username}:{proxy_password}@{proxy_host}:{proxy_port}"
# 设置代理
proxies = {
'http': proxy_url,
'https': proxy_url
}
try:
# 测试请求
test_url = "http://httpbin.org/ip"
print(f"通过HTTP代理访问: {test_url}")
response = requests.get(test_url, proxies=proxies, timeout=30)
response.raise_for_status()
print(f"状态码: {response.status_code}")
print(f"响应内容: {response.text}")
except Exception as e:
print(f"请求失败: {e}")
def http_proxy_with_session():
"""
使用session的HTTP代理
"""
print("\n=== HTTP Session 代理演示 ===")
proxy_host = "proxy.ipnut.com"
proxy_port = 28001
proxy_username = "ipnut"
proxy_password = "123456789"
proxy_url = f"http://{proxy_username}:{proxy_password}@{proxy_host}:{proxy_port}"
# 创建session
session = requests.Session()
session.proxies = {
'http': proxy_url,
'https': proxy_url
}
try:
# 测试多个请求
test_urls = [
"http://httpbin.org/ip",
"http://httpbin.org/user-agent",
"http://httpbin.org/get?param1=value1¶m2=value2"
]
for i, url in enumerate(test_urls, 1):
print(f"\n请求 {i}: {url}")
response = session.get(url, timeout=30)
response.raise_for_status()
print(f"状态码: {response.status_code}")
data = response.json()
print(f"响应数据: {json.dumps(data, indent=2)}")
time.sleep(1) # 避免请求过快
except Exception as e:
print(f"请求失败: {e}")
def http_proxy_post_request():
"""
HTTP代理POST请求演示
"""
print("\n=== HTTP 代理POST请求演示 ===")
proxy_host = "proxy.ipnut.com"
proxy_port = 28001
proxy_username = "ipnut"
proxy_password = "123456789"
proxy_url = f"http://{proxy_username}:{proxy_password}@{proxy_host}:{proxy_port}"
proxies = {
'http': proxy_url,
'https': proxy_url
}
try:
# POST请求数据
data = {
'name': 'ipnut_user',
'email': 'user@ipnut.com',
'message': '测试代理连接'
}
headers = {
'Content-Type': 'application/json',
'User-Agent': 'Python-Proxy-Client/1.0'
}
response = requests.post(
"https://httpbin.org/post",
json=data,
headers=headers,
proxies=proxies,
timeout=30
)
print(f"状态码: {response.status_code}")
result = response.json()
print(f"响应数据: {json.dumps(result, indent=2)}")
except Exception as e:
print(f"POST请求失败: {e}")
def proxy_test_tool():
"""
代理测试工具
"""
print("\n=== 代理测试工具 ===")
proxy_host = "proxy.ipnut.com"
proxy_port = 28001
proxy_username = "ipnut"
proxy_password = "123456789"
# 测试SOCKS5
print("\n测试 SOCKS5 代理...")
socks5_proxy_url = f"socks5://{proxy_username}:{proxy_password}@{proxy_host}:{proxy_port}"
try:
response = requests.get(
"http://httpbin.org/ip",
proxies={'http': socks5_proxy_url, 'https': socks5_proxy_url},
timeout=15
)
print("✅ SOCKS5 代理连接成功")
print(f" 当前IP: {response.json()['origin']}")
except Exception as e:
print(f"❌ SOCKS5 代理连接失败: {e}")
# 测试HTTP
print("\n测试 HTTP 代理...")
http_proxy_url = f"http://{proxy_username}:{proxy_password}@{proxy_host}:{proxy_port}"
try:
response = requests.get(
"http://httpbin.org/ip",
proxies={'http': http_proxy_url, 'https': http_proxy_url},
timeout=15
)
print("✅ HTTP 代理连接成功")
print(f" 当前IP: {response.json()['origin']}")
except Exception as e:
print(f"❌ HTTP 代理连接失败: {e}")
3. 主程序 #
import requests
def main():
"""
主函数 - 运行所有代理演示
"""
print("开始代理连接测试...\n")
# 运行SOCKS5代理演示
socks5_proxy_demo()
socks5_with_requests_session()
socks5_custom_requests()
print("\n" + "="*50 + "\n")
# 运行HTTP代理演示
http_proxy_demo()
http_proxy_with_session()
http_proxy_post_request()
print("\n" + "="*50 + "\n")
# 运行代理测试工具
proxy_test_tool()
print("\n代理测试完成!")
if __name__ == "__main__":
main()
4. 依赖安装 #
# 创建 requirements.txt 文件:
requests、PySocks
# 安装依赖:
pip install -r requirements.txt