代理 IP 相同、端口不同:算重复吗?
IP 地址和端口共同标识一个端点。导入、测试或去重代理列表时,应保留这一区别。
IP 地址相同而端口不同的两行记录代表不同端点。仅因 IP 重复就删除其中一行,可能删掉可用代理或另一种代理协议。
例如,203.0.113.10:8080 和 203.0.113.10:1080 连接的是不同端口。一个可能运行 HTTP,另一个运行 SOCKS5;访问规则和可用性也可能不同。这些示例端口号不能确定实际运行的服务。
测试完整端点
如果端口 8080 超时,向端口 1080 发起的请求成功,并不能证明第一行可用。每次测试都应记录协议、地址和端口。只写“这个 IP 已失效”会丢掉有助于解释结果的信息。
反过来也一样:两个端口最终可能使用同一个出站地址,但这并不会使它们成为同一个连接端点。它们可能共用基础设施或限制,因此保留两行并不能证明你拥有两个独立运营者或两个不同出口。
什么才算重复?
对于协议已知且统一的纯文本列表,按规范化后的 IP 地址和数值端口去重。仅支持 IPv4 的 Python 清理示例将这一规则用于普通 IP:port 行。如果文件混合多种协议,还应保留协议信息。从免费代理列表导入记录时,也要为每个地址和端口保留协议。
完全相同的 IP:port 如果带有两个标签,需要进一步检查。标为 HTTP 和 HTTPS 的两条记录,可能指的是同一个也支持 CONNECT 的 HTTP 代理;也可能是某项服务接受多种握手方式。只有理解标签含义后才能合并记录;不要在清理文本时丢掉能力信息。
格式可能造成虚假差异
如果 08080 和 8080 都表示十进制端口,它们的数值相同。IPv6 地址也可能有多种等价文本形式。比较前应规范化地址和端口,同时保留原始来源,以便排错。
去重可以改善列表格式,但不会检查端点是否在线、两个端点是否有独立出口,或国家标签是否正确。