本文分享一个用批处理(bat)语言编写VPN(Virtual Private Network)自动拔号程序。相信大家都在使用VPN拔号的时候都遇到一个问题,如果使用创建的vpn网络连接直接拔号的话,会导致一个问题公司内网是不能上外网的,而你本地的网络是可以上外网,但是当你拔号连接上公司的内网时所有的数据都通过vpn接口转发出去,而不是走你本地网络,这样就导致无法上网,只能上公司内网。今天分享的vpn自动拔号代码,即可以解决这个问题,而可以解决另一个问题就是方便使用,可要双击bat文件就可以自动拔号,不用手动输入用户名和密码信息。
首先:创建一个文本文件。
其次:在文本文件中输入如下代码:
1. @echo off
2. @Rem 用户名
1. set user=xxx //你的vpn用户名
1. @Rem 密码
1. set pass=xxx //你的vpn密码
1. @Rem 拨号文件名
1. set NIC_name=VPN //注意这个nic_name一定要和你创建的网络vpn连接的名字一样,否则无法连接成功
2. echo 正在VPN连接...
3. rasdial %NIC_name% %user% %pass% //rasdial为自动拔号命令
4. echo 已经连接.
1. for /f "tokens=1* delims=:" %%i in ('ipconfig /all^|find "192.168.123"') do set ip=%%j //过滤出ipconfig命令输出的信息包含192.168.230这个地址段的信息(这个ip段就是你连接vpn成功后vpn服务器分配的内网ip地址)
1. echo %ip%
2. route delete 0.0.0.0 mask 0.0.0.0 %ip% METRIC 1 //这句就是删除缺省指向vpn内网的路由
3. route add 192.168.21.0 mask 255.255.255.0 %ip% METRIC 1 //以下是添加需要访问的内网地址段
4. route add 192.168.13.0 mask 255.255.255.0 %ip% METRIC 1
前面的代码中都有相关参数的解析,这里就不多做介绍了,主要介绍一下如果配置将内网和外网数据分离,实现即可以上外网又可以访问公司内网(当然要保证你的本地是可以上外网的),以下代码中最后route部分就是解决这个问题的:
1. route delete 0.0.0.0 mask 0.0.0.0 %ip% METRIC 1
这条命令的作用是删除vpn连接成功后自动创建缺省路由网关是指向vpn地址的那条缺省路由,后面的%ip%就是前面通过过滤ipconfig输出信息中包含vpn服务器分配的内网ip。删除这个缺省路由后,缺省路由的网关会自动切换到原来本地接口所指向的网关,这样就实现了所有数据都是通过本地的接口转发,而不是能过vpn通道来转发。有人就会问那启不是只能上外网又不能上内网了,也没有意义。没错,接下来就要添加可以通过vpn通道访问的公司内网的相应内网网段地址如下:
1. route add 192.168.21.0 mask 255.255.255.0 %ip% METRIC 1
2. route add 192.168.13.0 mask 255.255.255.0 %ip% METRIC 1
这段代码中就添加了192.168.21.0和192.168.13.0两个数据中心内网网段地址段,当然你还可以继续添加你想访问的公司内网地址段。
最后命名任意保存为.bat的文件,例:vpn.bat。
到这里通过bat语言编写的vpn自动拔号同时内网和外网分离的代码就分享到这里。希望大家方便使用。
如果您喜欢本站,点击这儿可以捐赠本站
这些信息可能会帮助到你: 联系作者 | 报毒说明
修改版本软件,加群提示等均为修改者自留,非本站信息,注意鉴别
这些信息可能会帮助到你: 联系作者 | 报毒说明
修改版本软件,加群提示等均为修改者自留,非本站信息,注意鉴别
评论(0)