API 基础信息
基础 URL: http://xxxx:19999/api
获取代理IP
API URL: /getIp
请求方法: GET
请求参数:
参数名称 | 释义 | 是否必传 | 可选项 |
---|---|---|---|
orderId | 订单号 | 是 | 后台查看 |
unbindTime | IP使用时长 | 否 | 1~300 单位:秒,默认60,超过300需要定制 |
num | 提取代理IP数量 | 是 | 1~200 |
type | 协议类型 | 否 | 1:http/https,2:socks5,默认值1 |
time | 计算sign时的时间戳 | 是 | 系统时间,精确到10位 |
sign | 签名参数 | 是 | 请参考API密钥生成 |
pid | 省份 | 否 | 如四川省,传四川,中文字符,默认随机 |
cid | 城市 | 否 | 如成都市,传成都,中文字符,默认随机 |
dataType | 请求响应的数据格式 | 否 | 0:JSON,1:TXT,默认值1 |
isp | 运营商 | 否 | 电信/联通/移动,默认随机 |
示例请求:
http://xxxx:19999/api/getIp?orderId=xxx&time=xxx&num=1&sign=xxx&unbindTime=60&pid=四川&cid=成都&dataType=1&noDuplicate=0
JSON 返回示例:
{
"data": [
{
"realIp": "x.x.x.x",
"pid": "四川",
"cid": "成都",
"isp": "联通",
"ip": "x.x.x.x",
"port": "xxxx",
"ipExpireTime": 1634070400000,
"lastDialTimeStamp": 1634066800
}
]
}
ipExpireTime
为 IP 失效时间(时间戳为毫秒)。lastDialTimeStamp
为 IP 生效时间(时间戳为秒)。
TXT 返回示例:
x.x.x.x:xxxx
白名单添加与删除
白名单添加
API URL: /addWhiteIp
请求方法: GET
请求参数:
参数名称 | 释义 | 是否必填 | 可选项 |
---|---|---|---|
orderId | 订单号 | 是 | 后台查看 |
time | 计算sign时的时间戳 | 是 | 系统时间,精确到10位 |
sign | 签名参数 | 是 | 请参考下面API密钥生成 |
ip | 需要使用代理的公网出口IP | 是 | 只能一个一个加,如需添加IP段,可联系客服添加 |
示例请求:
http://xxxx:19999/api/addWhiteIp?orderId=xxx&time=xxx&sign=xxx&ip=1.1.1.1
白名单删除
API URL: /delWhiteIp
请求方法: GET
请求参数:
参数名称 | 释义 | 是否必填 | 可选项 |
---|---|---|---|
orderId | 订单号 | 是 | 后台查看 |
time | 计算sign时的时间戳 | 是 | 系统时间,精确到10位 |
sign | 签名参数 | 是 | 请参考下面API密钥生成 |
ip | 需要使用代理的公网出口IP | 是 | 只能一个一个加,如需添加IP段,可联系客服添加 |
示例请求:
http://xxxx:19999/api/delWhiteIp?orderId=xxx&time=xxx&sign=xxx&ip=1.1.1.1
签名生成
对每个开放的接口请求进行身份验证,即所有开放的接口请求都需要添加签名(sign
)参数信息。签名信息由订单号(orderId
) + 订单密钥(secret
) + 时间戳(time
)组成,每个订单都有唯一的订单密钥,在使用过程中一定要注意防止密钥泄漏。
签名生成步骤:
获取订单属性:
- 后台获取订单编号和密钥备用。
按顺序拼接原文字符串:
- 请按照如下顺序将签名参数进行拼接:
orderId=xxx&time=xxx&key=xxx
,其中time
为当前时间戳,精确到秒(10位)。
- 请按照如下顺序将签名参数进行拼接:
使用原文字符串生成签名:
- 使用 MD5 算法对第二步生成的原文字符串进行签名,签名成功后将签名内容转小写,获取最后输出的字符串即为最终的签名
sign
。
- 使用 MD5 算法对第二步生成的原文字符串进行签名,签名成功后将签名内容转小写,获取最后输出的字符串即为最终的签名
签名生成示例 (Java 表达式):
String sign = MD5("orderId=xxx&time=xxx&key=xxx").toLowerCase();
Python 示例代码:
import hashlib
import time
def generate_sign(order_id, secret):
current_time = int(time.time())
raw_string = f"orderId={order_id}&time={current_time}&key={secret}"
sign = hashlib.md5(raw_string.encode()).hexdigest().lower()
return sign, current_time
# 示例用法
order_id = "your_order_id"
secret = "your_secret_key"
sign, current_time = generate_sign(order_id, secret)
print(f"sign: {sign}, time: {current_time}")`
注意事项
- 添加白名单后,需要等待最多 1 分钟才能生效,请在生效后再使用代理。
- 所有 API 请求都需要计算签名参数并传递。
示例代码
以下是一个完整的 Python 脚本示例,展示如何调用获取代理 IP 和白名单添加的 API。
import hashlib
import requests
import time
import logging
# 配置 logger
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
handler = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
# 生成签名
def generate_sign(order_id, secret):
current_time = int(time.time())
raw_string = f"orderId={order_id}&time={current_time}&key={secret}"
sign = hashlib.md5(raw_string.encode()).hexdigest().toLowerCase()
return sign, current_time
# 获取代理 IP
def get_ip(base_url, order_id, secret, num=1, unbind_time=60, pid=None, cid=None, data_type=1, no_duplicate=0):
sign, current_time = generate_sign(order_id, secret)
params = {
'orderId': order_id,
'time': current_time,
'sign': sign,
'num': num,
'unbindTime': unbind_time,
'dataType': data_type,
'noDuplicate': no_duplicate
}
if pid:
params['pid'] = pid
if cid:
params['cid'] = cid
url = f"{base_url}/getIp"
try:
response = requests.get(url, params=params)
response.raise_for_status()
return response.json() if data_type == 0 else response.text
except requests.RequestException as e:
logger.error(f"获取代理 IP 时出错: {e}")
return None
# 添加白名单
def add_white_ip(base_url, order_id, secret, ip):
sign, current_time = generate_sign(order_id, secret)
params = {
'orderId': order_id,
'time': current_time,
'sign': sign,
'ip': ip
}
url = f"{base_url}/addWhiteIp"
try:
response = requests.get(url, params=params)
response.raise_for_status()
logger.info(f"白名单添加成功: {ip}")
except requests.RequestException as e:
logger.error(f"添加白名单时出错: {e}")
def main():
base_url = "http://xxxx:19999/api"
order_id = "your_order_id"
secret = "your_secret_key"
ip = "1.1.1.1" # 需要添加到白名单的IP
# 添加白名单
add_white_ip(base_url, order_id, secret, ip)
# 获取代理 IP
proxy_info = get_ip(base_url, order_id, secret, num=1, pid="四川", cid="成都", data_type=0)
if proxy_info:
logger.info(f"代理 IP 信息: {proxy_info}")
if __name__ == "__main__":
main()
作者:admin 创建时间:2024-05-24 10:44
最后编辑:admin 更新时间:2024-11-20 14:58
最后编辑:admin 更新时间:2024-11-20 14:58