You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从proxy.txt文件中移除同子网代理(每个子网仅留1个)

从proxy.txt中移除同子网代理(每个子网保留任意一个)

这里有两种实用的方法来解决你的需求——不管你偏好脚本还是命令行工具,都能快速实现每个子网(IP前三个字段相同)仅保留一个代理的效果:

方法1:Python脚本(可读性强,跨平台)

这个脚本会读取proxy.txt,用字典跟踪已经处理过的子网,只保留每个子网的第一个代理条目,最后将结果写入unique_proxies.txt(建议不要直接覆盖原文件,避免数据丢失):

# 定义输入输出文件路径
input_file = 'proxy.txt'
output_file = 'unique_proxies.txt'

# 用字典存储已出现的子网(键:前三个IP字段,值:任意)
seen_subnets = {}

with open(input_file, 'r') as f_in, open(output_file, 'w') as f_out:
    for line in f_in:
        line = line.strip()
        if not line:
            continue
        # 分割IP和端口,提取前三个字段作为子网标识
        ip_part = line.split(':')[0]
        subnet = '.'.join(ip_part.split('.')[:3])
        # 如果子网未出现过,写入文件并标记为已处理
        if subnet not in seen_subnets:
            seen_subnets[subnet] = True
            f_out.write(line + '\n')

print(f"处理完成!结果已保存到 {output_file}")

运行说明:

  1. 将脚本保存为clean_proxies.py
  2. 确保和proxy.txt在同一目录下
  3. 运行命令:python clean_proxies.py

方法2:AWK命令行工具(快速高效,适合Linux/macOS)

如果你习惯用命令行,一行awk命令就能搞定,直接输出结果或者写入文件:

# 直接输出到终端
awk -F'[:.]' '!seen[$1"."$2"."$3]++' proxy.txt

# 或者将结果写入新文件
awk -F'[:.]' '!seen[$1"."$2"."$3]++' proxy.txt > unique_proxies.txt

命令解释:

  • -F'[:.]':将分隔符设置为冒号和点,这样可以直接提取IP的前三个字段($1、$2、$3)
  • !seen[$1"."$2"."$3]++:用数组seen跟踪子网,第一次遇到某个子网时,seen[...]为0,取反后为真,打印该行;之后再遇到同子网的条目,seen[...]已经大于0,取反后为假,不打印。

测试结果

针对你提供的proxy.txt内容:

19.15.15.90:61234
19.15.15.29:28010
19.15.15.80:8998
19.15.15.102:8998
25.25.24.15:8998
25.25.24.80:8998
210.192.38.25:8998
210.192.38.29:8998

两种方法都会输出(每个子网保留第一个出现的代理):

19.15.15.90:61234
25.25.24.15:8998
210.192.38.25:8998

内容的提问来源于stack exchange,提问作者Local Host

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:42:54