Contents

自动获取国内代理IP

Contents

前面写了一个用代理翻回国内的指南,需要从proxy-list.org这里找免费代理IP。
这里拿到的IP不稳定,所以总要去重新查询,回来更新pac文件。于是写了个脚本:

  • 查询免费
  • ping测
  • 找出来最快的更新pac文件

然后在服务器跑了个定时任务,每小时更新一次。

#!/bin/sh
date
echo -n > ip.txt
echo -n > ip_sort.txt
for i in $(seq 1 3)
do
    echo "reading page "$i"..."
    url='http://proxy-list.org/english/search.php?search=CN&country=CN&p='$i
    for ip64 in $(curl --silent $url | grep -P "Proxy\('.*'\)" | cut -d"'" -f2)
    do
        ip_port=$(echo $ip64|base64 -d )
        ip=$(echo $ip_port|cut -d":" -f1)
        time=$(ping -c1 $ip|grep from|cut -d" " -f7|cut -d"=" -f2)
        echo $ip_port":"$time >> ip.txt
    done
done
echo "sorting..."
cat ip.txt|sort -t: -k3 -nu|grep -v -P :$ > ip_sort.txt
ip=$(head -n1 ip_sort.txt|cut -d":" -f1,2)
sed -i-e 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}:[0-9]\{1,\}/'$ip'/g' SwitchyPac.pac
echo "========"

===============
更新了一版,时隔半年,修正了那个错误的测速……看这里