2024年4月21日发(作者:)
VPN编程总结 - 闲云野鹤 - 博客园
最近帮朋友编了个VPN客户端,摸着石头过河,磕磕碰碰的搞了几天,觉得应该总结一下.
程序的主要过程如下:
EntryProperties创建VPN连接, RasDial拨号,RasHangUp挂
断,RasDeleteEntry删除连接
2.用HTTP组件,获取服务器设置
ProjectionInfo获取VPN连接的IP,并后台运行ROUTE命令,加载路由
4.用SOCKET作测试服务器连接的PING效果
5.通过TRegistry注册表记录保存密码和设置
6.通过TrayIcon形成任务栏小图标,隐藏主界面
7.用SUIskin美化界面.
有几个经验:
1.后台DOS运行方式,并获取结果
1)用WINEXEC
生成BAT文件的时候,在末尾加DEL 本.BAT以删除临时BAT文件
在运行WINEXEC的时候,可以把命令写成bat文件 > ,这样就可以有返回的
信息了
2)用ShellExecute
个人觉得这个函数不适合用后台运行,一般都用来OPEN一个URL来打开链接
3)用CREATEPROCESS并用管道返回结果
在CreateProcess创建的时候加管道,并在后面加循环获取管道的信息.缺点是如果信
息过大,管道信息未能获取完全进程就关闭了,会造成信息缺失
2.获取本地IP/本地默认网关/获取外网IP
1) 通过读取注册表SOFTWAREMicrosoftWindows
NTCurrentVersionNetworkCards获取连接信息,然后通过
SYSTEMCurrentControlSet
Services连接ParametersTcpip获取ip信息
2) 通过SOCK的API WSAIoCtL来获取本地ip
3) 通过ROUTE PRINT命令的返回结果中,字符截取Default GateWay
发布评论