--- /dev/null
+#!/bin/bash
+
+hostname=""
+ip=""
+score=0
+ping=0
+speed=0
+countrylong=""
+countryshort=""
+numvpnsessions=0
+uptime=0
+totalusers=0
+totaltraffic=0
+logtype=""
+operator=""
+message=""
+openvpn_configdata_base64=""
+servernum=1
+cmd=""
+loop=""
+
+outlist()
+{
+ number=$1
+ row=0
+ until [ $row = "15" ]; do
+ row=`expr $row + 1`
+ line=`cat ./tmp/vpnhostlist/${servernum} | awk "NR==${row}"`
+ case $row in
+ "1" ) hostname="$line";;
+ "2" ) ip="$line";;
+ "3" ) score="$line";;
+ "4" ) ping="$line";;
+ "5" ) speed="$line";;
+ "6" ) countrylong="$line";;
+ "7" ) countryshort="$line";;
+ "8" ) numvpnsessions="$line";;
+ "9" ) uptime="$line";;
+ "10" ) totalusers="$line";;
+ "11" ) totaltraffic="$line";;
+ "12" ) logtype="$line";;
+ "13" ) operator="$line";;
+ "14" ) message="$line";;
+ "15" ) openvpn_configdata_base64="$line";;
+ esac
+ done
+ clear
+ echo "${1}件目のサーバーを表示します"
+ echo "国・地域(物理的位置):${countrylong}"
+ echo "DDNS名:${hostname}"
+ echo "IPアドレス:${ip}"
+ echo "VPN接続数:${numvpnsessions}セッション"
+ # echo "連続稼働時間:
+ echo "過去${totalusers}人利用"
+ speed=`echo "scale=2; ${speed}/1000000" | bc`
+ echo "回線速度:${speed}Mpbs"
+ echo "Ping:${ping}ms"
+ totaltraffic=`echo "scale=2; ${totaltraffic}/1000000000" | bc`
+ echo "累計通信量${totaltraffic}GB"
+ echo "ログ記録ポリシー:${logtype}"
+ echo "ボランティア運営者名:${operator}"
+ echo "運営者によるメッセージ:${message}"
+ echo "スコア(品質):${score}"
+ echo ""
+ echo "Enter:次のサーバーを表示 BackSpace:前のサーバーを表示"
+ echo "C:このサーバーに接続" "Q:終了"
+ while : ; do
+ read -s -n 1 cmd
+ case $cmd in
+ "" )
+ servernum=`expr $servernum + 1`
+ if [ -e ./tmp/vpnhostlist/${servernum} ]; then
+ break
+ else
+ echo "${servernum}番目のサーバーはありません"
+ servernum=`expr $servernum - 1`
+ fi
+ ;;
+ $'\x7f' )
+ if [ $servernum = 1 ]; then
+ echo "これ以上前のサーバーはありません"
+ else
+ servernum=`expr $servernum - 1`
+ break
+ fi
+ ;;
+ "c" | "C" )
+ break
+ ;;
+ "q" | "Q" )
+ break
+ ;;
+ * )
+ read -s -n 1 cmd
+ ;;
+ esac
+ done
+}
+
+
+if [ "`id | grep root`" = "" ]; then
+ echo "root権限で実行してください"
+ exit 1
+fi
+
+if [ -e ./tmp ]; then
+ echo "一時ファイルを削除しています"
+ rm -rf ./tmp
+fi
+mkdir tmp
+
+vpngate_address="www.vpngate.net/"
+while getopts dm: OPTION; do
+ case $OPTION in
+ "m" )
+ echo "mオプションが指定されたので、指定されたミラーサーバーを使用します"
+ vpngate_address=$OPTARG
+ ;;
+ "d" )
+ echo "dオプションが指定されたので、ipアドレスを直接指定して取得を試みます"
+ vpngate_address=$(echo `host www.vpngate.net | awk NR==1`/)
+ break
+ ;;
+ esac
+done
+
+echo "VPNサーバーの一覧を開始します"
+wget -O ./tmp/vpnlist "${vpngate_address}api/iphone/"
+
+if [ $? != 0 ]; then
+ echo "サーバー一覧の取得に失敗しました"
+ exit 1
+fi
+
+echo "VPNサーバーの一覧を処理しています"
+mkdir ./tmp/vpnhostlist
+cat ./tmp/vpnlist | tr "," "\n" > ./tmp/temp
+rm -f ./tmp/vpnlist
+mv ./tmp/temp ./tmp/vpnlist
+i=-17
+servernum=1
+cat ./tmp/vpnlist | while read line; do
+ i=`expr $i + 1`
+ if [ $i -ge 0 ]; then
+ echo "$line" >> ./tmp/vpnhostlist/$servernum
+ if [ $i = "14" ]; then
+ servernum=`expr $servernum + 1`
+ i=-1
+ echo -n "."
+ fi
+ fi
+done
+echo "\n"
+echo "完了しました"
+servernum=1
+loop="n"
+while : ; do
+ outlist $servernum
+ case $cmd in
+ "c" )
+ break;;
+ "q" )
+ echo "終了しました"
+ exit 0;;
+ esac
+done
+killall openvpn >/dev/null 2>&1
+echo "$openvpn_configdata_base64" > ./tmp/openvpn_base64
+base64 -d ./tmp/openvpn_base64 > ./tmp/openvpn.conf
+openvpn --config ./tmp/openvpn.conf > /dev/null &
+clear
+echo "接続を開始しました"
+echo "接続が完了するまで何秒かかかるので注意してください"
+echo "接続できない場合はopenvpnを終了させてからもう一度このスクリプトを起動して違うサーバーに接続してみてください"
+echo -n "キーを押すと終了します"
+read
+
+exit 0