C# 写的 Windows 下快捷管理VPN工具

2015-07-23 [输出/作品] #.Net #VPN #Tools
更新日志
2021-06-11 更新分类、标签
2022-03-21 更新文章中中英文间隔

简介

使用 C# 写的 Windows 下快捷管理 VPN 工具,可以实现对本地 VPN 的增加,修改,删除管理

原理

在cmd 输入 : rasphone /? 就可以查看所有命令操作信息

使用


处理VPN的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConciseVPN
{
    /**
     * VPN操作类
     */
    class VPNTools
    {

        /**
         * 连接指定名称的VPN
         */
        public static bool connect(string vpnName, string username, string password)
        {
            String command = "rasdial " + vpnName + " " + username + " " + password;
            String result = Command.execute(command);
            if (result.IndexOf("已连接") > 0)
                return true;
            return false;
        }

        /**
         * 断开指定VPN连接
         */
        public static bool disConnect(String vpnName)
        {
            String command = "rasdial " + vpnName + " /disconnect";
            String result = Command.execute(command);
            if (result.IndexOf("没有连接") > 0)
                return false;
            return true;
        }

        /**
         * 新建VPN连接
         */
        public static void createConnection() {
            String command = "rasphone -a" ;
            Command.execute(command);
        }

        /**
         * 删除VPN连接
         */
        public static void deleteConnection(String vpnName)
        {
            String command = "rasphone -r " + vpnName;
            Command.execute(command);
        }

        /**
        * 修改VPN连接
        */
        public static void editConnection(String vpnName)
        {
            String command = "rasphone -e " + vpnName;
            Command.execute(command);
        }

        /**
         * 检测是否有VPN连接
         */
        public static String checkCoonnect()
        {
            String result = Command.execute("rasdial");
            if (result.IndexOf("没有连接") != -1)
                return "false";
            else{//返回连接中的VPN名称
                result = result.Replace("已连接", "").Replace("命令已完成。","");
                result = result.Substring(result.IndexOf("vpn_"));
                result = result.Substring(0, result.IndexOf("\n\n\r\n"));
                return result;
            }
        }
    }
}

截图

VPN 连接成功,在屏幕右上方显示的绿色状态条(不要说你看不到….)

连接成功

鼠标放到状态条显示的软件主界面 主界面

VPN 和用户列表 主界面的VPN/用户列表

VPN 未连接状态 未连接

下载

文章作者:eightpigs
创作时间:2015-07-23
更新时间:2021-06-11
许可协议:CC by-nc-nd 4.0