一行命令快速筛选出高可靠的代理
时间:2022-3-18 21:04 作者:admin 分类: Linux
前言
前段时间在 github 上从 pry0cc/soxy 改造过的 check_proxy 一个由 golang 开发的命令行验证 socks 代理有效性工具。
这个工具是为命令行使用而生,故只支持从 stdin 输入数据,我们可以通过cat 或者 pbpaste (mac剪贴板) 用管道符号 | 传递给这个工具。用法如下:
1.验证 proxies.txt 中的有效代理,并覆盖保存到 alive.txt
cat proxies.txt | ./check_proxy_mac | tee alive.txt
2.和前面不一样的是多了个 -a
参数, 追加到 alive.txt 中
cat proxies.txt | ./check_proxy_mac | tee -a alive.txt
但是我测试过程中发现同样的代理集,多次验证后,每次的有效性并不完全一致,再多次测试后,发现经过连续测试一定次数后,有效性代理的数量可以基本保持一致,故有两种方法,一种是改造程序,一种是通过命令行的方式来搞定,我比较懒,直接用命令行搞定。下面说下如何用命令行搞定:
file=socks.txt; for ((i=1;i<9;i++)) do pbpaste|./check_proxy_mac|tee -a $file; done && wc $file && sort $file|uniq|tee $file && wc $file
通过剪贴板读取数据作为输入进行连续9次验证并去重保存至 socks.txt 文件中
file=socks.txt; for ((i=1;i<9;i++)) do cat $file|./check_proxy_mac|tee -a $file; done && wc $file && sort $file|uniq|tee $file && wc $file
通过读取文件作为输入进行连续9次验证并去重保存至 socks.txt 原文件中
小小的一行命令行就搞定!岂不乐哉 保存位置和验证次数可以根据自己的网络情况适当调整,9次此并不一定适合你。
在写这个 bash 的时候,有个小坑:
在 for 循环结束并统计整个文件行数后,如果使用 ;
而不是 &&
会导致最终结果把前面屏幕所有 stdin 输出也保存了,完全乱了。他们之间的区别如下:
command1 & command2 & command3 三个命令同时执行
command1; command2; command3 不管前面命令执行成功没有,后面的命令继续执行
command1 && command2 只有前面命令执行成功,后面命令才继续执行
最后,可以在我的 github 下载到这个小工具. https://github.com/Mr-xn/check_proxy
推荐阅读: