用perl更改拨通vpn后的路由设置。
好朋友给我建立了能够访问教育网的vpn服务器,我可以在windows上拨过去。
可令人烦恼的是需要手动更改路由设置。
后来在他的帮助下把那些设置写成了一个bat.我很笨蛋的。
可另外一个麻烦事是,我每次拨过去获得的ip是动态的。虽然是一个段的,但不一定是哪个。
于是我每次都得用ipconfig看ip,再手动更改那个bat文件,然后执行,不爽。
于是想起来perl肯定能做这种处理字符的工作。
用google在perlchina.org上找到获得所有网络接口ip的代码。
自己又写了一个幼稚型正则式,然后把那个bat文件给用system()函数给克隆了过来。
就是下面的东西了,呵呵。
遗憾的是没有好好学这个语言。
写出来的这个东西也只能在自己的电脑上用。
也许这就是脚本的魅力吧。
Code: |
#!/usr/bin/perl use Socket; use Sys::Hostname; my($name,$aliases,$type,$len,@myaddr)=gethostbyname(hostname()); foreach (@myaddr){ $ip=inet_ntoa($_); if ($ip=~/210\.47\.163.*/){ system "route", "-f"; system "route", "-p", "add", "0.0.0.0", "mask", "0.0.0.0", "172.16.5.1"; system "route", "add", "210.47.160.0", "mask", "255.255.240.0", $ip; } } |