API 基础信息

基础 URL: http://xxxx:19999/api

获取代理IP

API URL: /getIp

请求方法: GET

请求参数:

参数名称释义是否必传可选项
orderId订单号后台查看
unbindTimeIP使用时长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)组成,每个订单都有唯一的订单密钥,在使用过程中一定要注意防止密钥泄漏。

签名生成步骤:

  1. 获取订单属性:

    • 后台获取订单编号和密钥备用。
  2. 按顺序拼接原文字符串:

    • 请按照如下顺序将签名参数进行拼接:orderId=xxx&time=xxx&key=xxx,其中 time 为当前时间戳,精确到秒(10位)。
  3. 使用原文字符串生成签名:

    • 使用 MD5 算法对第二步生成的原文字符串进行签名,签名成功后将签名内容转小写,获取最后输出的字符串即为最终的签名 sign

签名生成示例 (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-06-04 16:28