
什么是代理IP的API接口
做过爬虫或者数据采集的朋友都知道,手动复制粘贴代理IP效率太低,根本跟不上业务需求。代理IP的API接口就是解决这个问题的利器——它本质上就是服务商提供的一个URL链接,你的程序请求这个链接,就能自动拿到一批可用的代理IP地址和端口。
通过API接口对接,你可以实现IP的自动获取、自动切换、自动验证,彻底告别手动操作。整个对接过程其实并不复杂,下面带你5分钟搞定。
API对接前的准备工作
在写代码之前,需要先做好以下准备:
1. 注册账号并购买套餐
在IPIPGO官网注册账号,根据业务需求选择合适的代理IP套餐(住宅IP或数据中心IP),完成购买后即可使用API功能。
2. 获取专属API链接
登录用户中心,找到”API获取”页面,系统会为你生成一条专属的API提取链接。这条链接支持自定义参数,包括提取数量、返回格式、地区筛选等。
3. 确认网络环境
需要注意的是,IPIPGO的代理IP需要客户自身具备海外网络环境才能使用(TikTok专线除外),请提前确认你的服务器网络条件。
4. 准备开发环境
本文以Python为例,确保已安装 Anfragen Bibliothek:
Pip-Installationsanfragen

5分钟搞定API对接
第一步:配置API参数
在IPIPGO用户中心的API页面,你可以设置以下参数:
| Parameter | Anweisungen | typisches Beispiel |
|---|---|---|
| Anzahl der Abhebungen | 每次请求返回的IP数量 | 10 |
| Rückgabe-Format | JSON 或 TXT | json |
| Datenformat | IP:Port 或完整信息 | ip:port |
| Flächenfilterung | 指定国家/城市 | 美国-洛杉矶 |
| 过滤模式 | 去重、过滤不可用IP | öffnet |
第二步:请求API获取IP
配置好参数后,你会得到一条完整的API链接。用Python请求这条链接即可获取代理IP:
import requests
# 替换为你在IPIPGO后台获取的API链接
api_url = "https://api.ipipgo.com/api/ip/get?key=YOUR_KEY&num=10&format=json"
def fetch_proxy_ips():
"""通过API获取代理IP列表"""
try:
resp = requests.get(api_url, timeout=10)
data = resp.json()
if data.get("code") == 0:
ip_list = data.get("data", [])
print(f"成功获取 {len(ip_list)} 个代理IP")
return ip_list
else:
print(f"获取失败: {data.get('msg')}")
return []
except Exception as e:
print(f"请求异常: {e}")
return []
# 测试获取
ips = fetch_proxy_ips()
for item in ips:
print(f"{item['ip']}:{item['port']}")
Schritt 3: Überprüfung der IP-Verfügbarkeit
拿到IP后,建议先做一轮可用性验证,剔除失效IP:
def check_proxy(ip, port, timeout=5):
"""验证代理IP是否可用"""
proxies = {
"http": f"http://{ip}:{port}",
"https": f"http://{ip}:{port}"
}
try:
resp = requests.get(
"https://httpbin.org/ip",
proxies=proxies,
timeout=timeout
)
return resp.status_code == 200
except:
return False
# 过滤可用IP
valid_ips = [ip for ip in ips if check_proxy(ip["ip"], ip["port"])]
print(f"可用IP数量: {len(valid_ips)}")
构建自动获取IP池
单次获取IP只是第一步,实际业务中你需要一个自动维护的IP池,能够持续补充新IP、淘汰失效IP。下面是一个完整的IP池管理类:
import requests
import time
import threading
from queue import Queue
class ProxyPool:
def __init__(self, api_url, min_pool_size=10, fetch_num=20):
self.api_url = api_url
self.min_pool_size = min_pool_size
self.fetch_num = fetch_num
self.pool = Queue()
self._running = True
def fetch_ips(self):
"""从API批量获取代理IP"""
try:
url = self.api_url + f"&num={self.fetch_num}"
resp = requests.get(url, timeout=10)
data = resp.json()
if data.get("code") == 0:
for item in data.get("data", []):
proxy = f"{item['ip']}:{item['port']}"
self.pool.put(proxy)
print(f"[IP池] 补充 {self.fetch_num} 个IP,当前池大小: {self.pool.qsize()}")
except Exception as e:
print(f"[IP池] 获取失败: {e}")
def get_proxy(self):
"""从池中取一个IP"""
if self.pool.empty():
self.fetch_ips()
return self.pool.get() if not self.pool.empty() else None
def remove_proxy(self, proxy):
"""移除失效IP(Queue不直接支持删除,这里仅做标记)"""
print(f"[IP池] 移除失效IP: {proxy}")
def auto_maintain(self):
"""自动维护线程:池子低于阈值时自动补充"""
while self._running:
if self.pool.qsize() < self.min_pool_size:
self.fetch_ips()
time.sleep(3)
def start(self):
"""启动IP池"""
self.fetch_ips()
t = threading.Thread(target=self.auto_maintain, daemon=True)
t.start()
print("[IP池] 已启动自动维护")
def stop(self):
"""停止IP池"""
self._running = False
print("[IP池] 已停止")
# ===== 使用示例 =====
if __name__ == "__main__":
API_URL = "https://api.ipipgo.com/api/ip/get?key=YOUR_KEY&format=json"
pool = ProxyPool(api_url=API_URL, min_pool_size=10, fetch_num=20)
pool.start()
# 业务中使用
for i in range(5):
proxy = pool.get_proxy()
if proxy:
print(f"第{i+1}次请求,使用代理: {proxy}")
# 这里放你的业务请求逻辑
# 如果请求失败,调用 pool.remove_proxy(proxy)
time.sleep(1)
pool.stop()
这段代码实现了IP池的自动补充、按需获取、失效移除三大核心功能。当池中IP数量低于设定的阈值时,会自动请求API补充新IP,保证业务始终有可用IP。

对接时的注意事项
1. 控制请求频率
API接口通常有调用频率限制,建议根据IPIPGO后台显示的频率限制来设置请求间隔,避免触发限流。
2. 合理设置提取数量
单次提取太多会造成浪费,太少则频繁请求。一般建议单次提取10-20个,根据业务并发量调整。
3. 做好异常处理
网络请求随时可能超时或失败,代码中务必加入 try-except 和重试机制,保证程序稳定运行。
4. IP使用后及时释放
用完的IP及时从池中移除,避免重复使用已被目标网站封禁的IP。
allgemeine Probleme
Q: API接口返回的IP不可用怎么办?
首先检查你的服务器网络环境是否满足要求(IPIPGO代理IP需自身具备海外网络环境,TikTok专线除外)。其次确认API参数配置是否正确,可以在后台开启"过滤不可用IP"选项。如果仍有问题,可以联系IPIPGO技术支持协助排查。
Q: API调用频率限制是多少?
调用频率取决于你购买的套餐等级,具体限制会在IPIPGO用户中心的API页面显示。建议在代码中做好频率控制,避免超过限制导致接口暂时封禁。
Q: 支持哪些编程语言对接?
API接口本质上是HTTP请求,任何支持HTTP请求的编程语言都可以对接,包括但不限于Python、Java、Go、Node.js、PHP、C#等。
Q: JSON和TXT返回格式选哪个好?
如果只需要IP和端口,TXT格式更简洁、解析更快;如果需要IP的详细信息(地区、运营商、到期时间等),建议选JSON格式。对于IP池管理,推荐JSON格式,信息更完整。
Q: 如何提高代理IP的使用成功率?
一是开启API的过滤功能,自动剔除不可用IP;二是在代码中加入IP验证环节,使用前先检测可用性;三是合理设置请求超时时间,一般建议5-10秒;四是配合IP轮换策略,避免单个IP被频繁使用。

