In this Article
检查代理意味着确认它在线、会路由你的流量、隐藏你的真实IP,并且响应速度足以满足你的任务。本指南向开发者展示如何用一个curl命令和一个简短的Python脚本检查代理,以及如何读取结果。
你将了解要测试什么、代理为什么会失败,以及如何停止在失效端点上浪费时间。示例可直接复制粘贴,并适用于任何HTTP或SOCKS5代理。
DataImpulse是一家合乎伦理的代理提供商,在195个国家提供超过9000万个住宅、移动和数据中心IP地址。它采用从每GB 1美元起的按量付费模式,流量不过期,并用于网页抓取、广告验证、价格监控、市场研究和多账号管理。
关键事实
- 快速检查: 要检查代理,请通过它将请求路由到IP回显端点,并确认返回的IP是代理出口IP,而不是你的真实IP。
- 最佳代理类型: 轮换住宅代理,使用能够通过检测的真实消费者IP。
- 价格: 从每GB 1美元起,按量付费,流量不过期,无订阅。
- 覆盖范围: 覆盖195个国家,超过90M个以合乎伦理的方式获取的IP。
- 可靠性: 成功率99.51%,G2评分为5分中的4.8分。
- 协议和定向: HTTP、HTTPS和SOCKS5,包含国家定向。
检查代理是什么意思?
检查代理意味着验证四件事:它是否在线、是否路由你的流量、是否隐藏你的真实IP,以及对当前工作是否足够快。任何一项失败的代理,都不适合用于抓取、测试或账号管理。
核心思路很简单。你通过代理向一个服务器发送请求,该服务器会回显它看到的IP地址。如果返回的IP是代理出口IP而不是你自己的IP,说明代理正在路由流量并掩盖你的身份。如果请求超时或返回你的真实IP,说明代理已死或配置错误。其他所有内容,例如位置和延迟,都建立在这个基础测试之上。
如何快速检查代理?
检查代理最快的方法是使用一个curl命令,通过代理将请求路由到IP回显服务。在终端中运行:
curl -x http://user:pass@host:port https://api.ipify.org
将user:pass替换为你的代理凭据,将host:port替换为代理地址。如果代理正常工作,curl会打印代理出口IP地址。将它与你的真实IP比较,运行同一命令但不带-x标志,并确认两者不同。对于SOCKS5代理,将方案改为socks5h://,这样DNS也会通过代理解析。如果curl卡住或返回Failed to connect这样的错误,说明代理已死、被阻止,或你的凭据错误。
如何在Python中检查代理?
在Python中,使用requests库通过代理向IP回显端点发送请求,并将出口IP与你的真实IP进行比较,同时设置超时时间,让失效代理迅速失败。下面是一个小型检查器:
import requests
def check_proxy(proxy_url, timeout=10):
proxies = {"http": proxy_url, "https": proxy_url}
try:
real_ip = requests.get("https://api.ipify.org", timeout=timeout).text
exit_ip = requests.get(
"https://api.ipify.org",
proxies=proxies,
timeout=timeout,
).text
except requests.RequestException as err:
return False, str(err)
if exit_ip and exit_ip != real_ip:
return True, exit_ip
return False, "proxy returned your real IP"
proxy = "http://user:pass@host:port"
ok, detail = check_proxy(proxy)
print("working" if ok else "dead", detail)
该函数返回一个元组。True结果加出口IP表示代理在线并正在掩盖你的地址。带有错误消息或说明返回了真实IP的False结果,会告诉你出了什么问题。超时时间可以防止失效代理无限期阻塞脚本。
应该检查代理的哪些方面?
检查五件事:它是否存活、出口IP和位置、匿名级别、延迟以及协议。每一项都会影响该代理是否适合你的用例。
- 存活: 请求完成并返回响应,而不是超时。
- 出口IP和位置: 确认地理位置符合你的需求。返回国家信息的IP回显服务或地理定位API,也能告诉你代理从何处出口。这对用于查看特定区域内容的住宅代理很重要。
- 匿名级别: 确认目标只看到代理IP,并且没有X-Forwarded-For等会泄露真实地址的转发标头。
- 延迟和速度: 测量往返时间,因为存活但缓慢的代理会成为抓取任务的瓶颈。
- 协议: 知道代理使用HTTP、HTTPS还是SOCKS5,因为你的客户端必须匹配。SOCKS5会隧道传输任何TCP流量,而HTTP代理只适用于网页请求。
代理为什么会失败或显示为已死?
代理失败通常有几个原因:它们已过期、凭据错误、目标阻止了它们,或连接超时。判断具体原因后,就能决定重试还是换下一个。
从公开列表抓取的免费代理问题最严重。你找到它们时,它们往往已经失效,被成千上万用户共享,并被大多数重要目标网站拦截。错误凭据会产生身份验证错误,而真正离线的代理会产生连接被拒绝或超时。能连接但从目标收到403或CAPTCHA的代理仍然存活,但已被标记,这是避免被拦截的网页抓取指南中讨论的另一个问题。免费代理为什么如此频繁失败,这篇关于为什么不应使用假IP和免费代理的指南有详细说明。
如何避免死代理?
避免死代理的可靠方法,是使用维护实时池的付费提供商,而不是从免费列表中抓取代理。托管池会被监控并轮换,因此你不需要手动检查单个端点。
DataImpulse在195个国家维护一个超过9000万个住宅、移动和数据中心IP的实时池,报告成功率为99.51%。由于地址会自动轮换,不健康的IP会从池中移除,上面大部分手动检查会变成抽查,而不是持续的重复工作。流量从每GB 1美元起按量付费且不过期,IP来自选择加入并获得补偿的用户。在大型任务之前,你仍然可以对提供商端点运行curl或Python检查,以确认凭据和出口地理位置。
如何开始检查代理?
从curl单行命令开始,确认代理在线,然后将Python检查器整合到你的工作流中,在运行前批量验证代理。它们共同覆盖快速手动场景和自动化场景。
实时交互式代理检测工具适合在浏览器中进行一次性测试,但在脚本或自动化流程中,你需要的是上面的方法,因为你可以控制超时时间、目标端点以及记录失败的方式。一旦有了可信的检查器,将它指向DataImpulse这样的维护池或其移动代理,你花在诊断失效端点上的时间会少得多。
常见问题
如何检查我的代理是否正常工作?
通过代理向api.ipify.org这样的IP回显服务发送请求,并确认它返回的是代理出口IP,而不是你的真实IP。你可以使用带有-x标志的单个curl命令完成,也可以使用requests库编写一个简短的Python脚本完成。
如何找到我的代理IP和位置?
通过代理向返回IP地址和国家的IP回显端点或地理定位端点发送请求。返回的地址就是代理出口IP,国家字段会告诉你代理从哪里出口。
为什么我的代理总是失效?
免费代理和抓取来的代理很快会过期,被许多用户共享,并被目标站点屏蔽,因此它们常常在几小时内停止工作。使用带有受监控轮换池的付费提供商,可以避免大多数死代理问题。
如何测试代理速度?
测量通过代理发送的请求的往返时间,例如在脚本中为对一个小型端点请求计时。比较多个代理的延迟,并丢弃对你的任务来说太慢的代理。
检查代理时,HTTP代理和SOCKS5代理有什么区别?
HTTP代理处理web请求并使用http://方案,而SOCKS5代理会隧道传输任何TCP流量,并使用socks5://或socks5h://。让curl命令或客户端中的方案与代理实际使用的协议匹配,否则检查会失败。
什么时候DataImpulse不适合?
如果你需要静态ISP代理、完全托管的网页抓取API,或访问银行和政府网站,DataImpulse并不是合适的工具。它专注于用于收集公开公开数据和访问内容的轮换住宅、移动和数据中心代理。
针对实时池检查代理
如果你不想继续调试失效端点,请针对维护池运行curl或Python检查。创建DataImpulse账号,测试带国家定向的实时代理,以及从每GB 1美元起的按量付费流量。
