程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#:如何操作VPN?

C#:如何操作VPN?

編輯:C#入門知識

轉載自:http://blog.sina.com.cn/s/blog_6221a3490100kpka.html

因為工作需要,需要用程序來控制VPN代理,在google搜了搜,還有不少朋友有同樣的需求,但是目前在網上搜索到的解決方案,都還遺留了一些問題。只好自己手動把方案補齊了一下,談不上原創,大牛們飄過就行。
    先談談自己的需求吧,就是針對如圖示中的VPN連接,咱們至少需要以下四個基本功能

1.新建一個VPN

2.修改指定名字VPN的主機IP地址

3.監視當前連接狀態

4.刪除指定名稱的VPN

直接上代碼吧,這裡面引用了【DotRas.dll】 大家可以到官網http://dotras.codeplex.com/ 下載

 
           WinDir = Environment.GetFolderPath(Environment.SpecialFolder.System) + 
           RasDialFileName = 
           VPNPROCESS = WinDir +
          IPToPing { ; 
          VPNName { ; 
          UserName { ; 
          PassWord { ;       
         VPNHelper( _vpnIP,  _vpnName,  _userName, .IPToPing =.VPNName =.UserName =.PassWord =   
         .TryConnectVPN(.VPNName,.UserName,   
         .TryDisConnectVPN(  
         .CreateOrUpdateVPN(.VPNName,    
         .TryDeleteVPN(   
          TryConnectVPN( connVpnName, connUserName, args = .Format(= = =    
          TryDisConnectVPN( args = .Format(= = =   
          CreateOrUpdateVPN( updateVPNname,= = 
            =

            = RasEntry.CreateVpnEntry(updateVPNname, updateVPNip, RasVpnStrategy.PptpFirst, RasDevice.GetDeviceByName(==   
          TryDeleteVPN(= =   
         List<><> ConnectingVPNList =  List<>= = = = = = = ;

             strResult =
            Regex regger =  Regex(
            [] list = regger.Match(strResult).Value.ToString().Split(( index =  ; index < list.Length;index++ (list[index]!=,
            

注:該類可以方便的對VPN進行【增】,【刪】,【改】,【連接】,【斷開】操作,在操作前後可以用GetCurrentConnectingVPNNames方法來得到正在使用中的VPN名稱列表,這樣一來,可以輕松判斷【連接】或【斷開】是否成功執行。
    當然,鑒於【連接】,【斷開】操作有一定的延遲,建議操作執行後等待一定時間,再使用GetCurrentConnectingVPNNames方法來查看執行結果

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved