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)组成,每个订单都有唯一的订单密钥,在使用过程中一定要注意防止密钥泄漏。

签名生成步骤:

  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-11-20 14:58