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-06-04 16:28