vpn編程
1. 請給一些Windows中網路編程的資料
為一個不斷進取的編程者,我們常常不滿足於編程語言所提供的一般功能,總是希望能夠實現一些特殊的功能,這有時不但是我們程序的要求,有時也是編程者心理上需要(試想,還會有什麼比在深夜中巧妙解決一個難題而更令人興奮呢?)。VisualBasic,做為一個當前最流行的快速編程環境,就給我們提供了實現這些目標的平台,事實上,它無限擴展的API介面可以實現所有WINDOWS下可以實現的功能。然而對於初學者來說,「浩瀚「的API函數總是顯得那麼神奇與不可琢磨,因此在實際應用過程中不能夠靈活應用。下面我將結合兩個小例子來示範介紹VB中調用API函數的步驟和功能,並總結說明在實際工作中如何提高這方面的技巧。例子在WINDOWS98下採用VB6.0編譯。
一.限制滑鼠的移動
---- 有時我們的軟體要求用戶在未完成某一任務時,滑鼠不能移出當前活動控制項,換句話就是將滑鼠限制在控制項的內部,直到任務完成或用戶中斷為止。這個功能藉助API函數實現起來思路很清楚,代碼也很簡潔。其思路是先確定當前滑鼠的位置;然後確定當前活動控制項的大小;最後將滑鼠限制在活動控制項內。(下面忽略項目建立等過程)
---- 1.建立一個新項目:新窗體為form1,在form1上添加一個commandbutton,設置其Name=CMButton1;Caption=「將滑鼠限制在此按鈕中「
---- 2.拷貝API函數和POINTAPI結構:打開VB6.0自帶的API瀏覽器,調入WIN32API.txt文件,復制以下結構和函數聲明到form1的聲明部分:
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function ClientToScreen Lib
「user32「 Alias 「ClientToScreen「 (ByVal
hwnd As Long, lpPoint As POINTAPI) As Long
『用來確定當前滑鼠的位置
Private Declare Function ClipCursor Lib
「user32「 Alias 「ClipCursor「 (lpRect As Any)
As Long 『用來限定當前滑鼠的活動范圍
---- 3.定義一個通用過程ConfineTo
Public Sub ConfineTo (myCtl As Object)
On Error Resume Next
Dim tmpRect As RECT
Dim pt As POINTAPI
With myCtl
If TypeOf myCtl Is Screen Then 『鎖定在屏幕范圍內
tmpRect.Left = 0
tmpRect.Top = 0
tmpRect.Right = (.Width \ Screen.TwipsPerPixelX)
tmpRect.Bottom = (.Height \ Screen.TwipsPerPixelY)
Elseif TypeOf myCtl Is form 『鎖定在窗體范圍內
tmpRect.Left = (.Left \ Screen.TwipsPerPixelX)
tmpRect.Top = (.Top \ Screen.TwipsPerPixelY)
tmpRect.Right = (.Left + .Width) \ Screen.TwipsPerPixelX
tmpRect.Bottom = (.Top + .Height) \ Screen.TwipsPerPixelY
else
pt.X = 0
pt.Y = 0
Call ClientToScreen(.hWnd, pt)
『獲取當前控制項在屏幕上的位置
tmpRect.Left = pt.X
『保存當前控制項位置
tmpRect.Top = pt.Y
pt.X = .Width
pt.Y = .Height
Call ClientToScreen(.hWnd, pt)
tmpRect.Bottom = pt.Y
tmpRect.Right = pt.X
End If
Call ClipCursor(tmpRect)
End With
End Sub
---- 4.在 CMButton1_Click()中加入以下代碼
Static Cliped As Boolean
『靜態變數用來控制狀態切換
If Not Cliped Then
ConfineTo Cmbutton1
Cliped = True
Else
ConfineTo Screen 『取消滑鼠限制
Cliped = True
End If
---- 5. 運行後,滑鼠點擊cmbutton1,此時滑鼠只能被鎖定在此按鈕內部,再次點擊按鈕,限製取消。
二.創建臨時文件
---- 臨時文件用來保存軟體運行過程中的臨時變化,這對於熟悉WORD等軟體的人來說,經常會遇到。那麼臨時文件是如何產生的呢,其實很簡單,只需要一個API函數就可以。
---- 1.拷貝聲明函數(方法同前)
Private Declare Function GetTempFileName Lib 「kernel32「 _
Alias 「GetTempFileNameA「 (ByVal lpszPath As String, _
ByVal lpPrefixString As String, ByVal wUnique As Long, _
ByVal lpTempFileName As String) As Long
參數定義如下:
lpszPath =傳入保存臨時文件的路徑 ,如「C:\mytemp「
lpPrefixString=傳入臨時文件名開始的前三個字母,
起到幫助識別臨時文件來源的作用。
wUnique =0 ,windows隨機產生文件名;否則安其值定義文件名。
lpTempFileName=返回隨機文件名
---- 2.返回臨時文件名
Private Function GenTempName(sPath As String)
Dim sPrefix As String
Dim lUnique As Long
Dim sTempFileName As String
If IsEmpty(sPath) Then sPath = 「c:\temp「
sPrefix = 「TVB「
lUnique = 0 『windows隨機給名
sTempFileName = Space$(100)
GetTempFileName sPath, sPrefix, lUnique, sTempFileName
sTempFileName = Mid$(sTempFileName, 1,
InStr(sTempFileName, Chr$(0)) - 1) 『去掉多餘空格
GenTempName = sTempFileName
End Function
---- 3.將下面代碼加入到form1_click()事件中
MsgBox GenTempName(「c:\temp「)
---- 4.運行,滑鼠點擊form,彈出msgbox,顯示生成「c:\temp\TVB724.tmp「文件,用文件管理器查看,在c:\temp下有TVB724.tmp 文件,長度為0K。
---- 需要注意的是,傳入的路徑必須是有效路徑,否則GenTempName函數返回0,lpTempFileName中也沒有臨時文件名。
三.結束語
---- 從上面可以看出,API函數的確簡單高效,但也充滿一些看似高深的變數而使人卻步。我們不禁會問,究竟什麼時候要用到API函數?具體哪些函數可以解決我的問題?,那些函數中的變數都代表什麼?其實對這些問題,即使對一個VB高手也難給出明確的回答,因為API函數庫實在太龐大了,每一個人最終只能熟悉其中的一小部分(這也可能是調用API的文章層出不窮的原因吧)。總結自己的一點經驗,我覺得應該注意以下幾點。
---- 1.熟練掌握VB基本技巧,了解其所能所不能,這是最基本的要求。
---- 2.了解WINDOWS內部控制機理,這樣對一些復雜的問題就可以逐步分析其調用機制,初步確定採用哪部分的API函數來解決問題。
---- 3.案頭必備一本最新的VB版的WINDOWS API 大全,推薦機械工業出版社的< >。書中給出了每一個VB可以調用的API函數的詳細說明,可以幫助精確了解所需要的API函數的變數聲明。
---- 4.多看別人的程序。報紙雜志,尤其是網上這方面的文章數不清。這是最快的方法。
---- 5.隨用隨查。永遠不要在用不到的函數上浪費寶貴的時間
2. 什麼是VPN的加密技術
VPN加密技術的應用
加密技術的應用是多方面的,但最為廣泛的還是在電子商務和VPN上的應用,下面就分別簡敘。
1、在電子商務方面的應用
電子商務(E-business)要求顧客可以在網上進行各種商務活動,不必擔心自己的信用卡會被人盜用。在過去,用戶為了防止信用卡的號碼被竊取到,一般是通過電話訂貨,然後使用用戶的信用卡進行付款。現在人們開始用RSA(一種公開/私有密鑰)的加密技術,提高信用卡交易的安全性,從而使電子商務走向實用成為可能。
許多人都知道NETSCAPE公司是Internet商業中領先技術的提供者,該公司提供了一種基於RSA和保密密鑰的應用於網際網路的技術,被稱為安全插座層(Secure Sockets Layer,SSL)。
也許很多人知道Socket,它是一個編程界面,並不提供任何安全措施,而SSL不但提供編程界面,而且向上提供一種安全的服務,SSL3.0現在已經應用到了伺服器和瀏覽器上,SSL2.0則只能應用於伺服器端。
SSL3.0用一種電子證書(electric certificate)來實行身份進行驗證後,雙方就可以用保密密鑰進行安全的會話了。它同時使用「對稱」和「非對稱」加密方法,在客戶與電子商務的伺服器進行溝通的過程中,客戶會產生一個Session Key,然後客戶用伺服器端的公鑰將Session Key進行加密,再傳給伺服器端,在雙方都知道Session Key後,傳輸的數據都是以Session Key進行加密與解密的,但伺服器端發給用戶的公鑰必需先向有關發證機關申請,以得到公證。
基於SSL3.0提供的安全保障,用戶就可以自由訂購商品並且給出信用卡號了,也可以在網上和合作夥伴交流商業信息並且讓供應商把訂單和收貨單從網上發過來,這樣可以節省大量的紙張,為公司節省大量的電話、傳真費用。在過去,電子信息交換(Electric Data Interchange,EDI)、信息交易(information transaction)和金融交易(financial transaction)都是在專用網路上完成的,使用專用網的費用大大高於互聯網。正是這樣巨大的誘惑,才使人們開始發展網際網路上的電子商務,但不要忘記數據加密。
2、加密技術在VPN中的應用
現在,越多越多的公司走向國際化,一個公司可能在多個國家都有辦事機構或銷售中心,每一個機構都有自己的區域網LAN(Local Area Network),但在當今的網路社會人們的要求不僅如此,用戶希望將這些LAN連結在一起組成一個公司的廣域網,這個在現在已不是什麼難事了。
事實上,很多公司都已經這樣做了,但他們一般使用租用專用線路來連結這些區域網 ,他們考慮的就是網路的安全問題。現在具有加密/解密功能的路由器已到處都是,這就使人們通過互聯網連接這些區域網成為可能,這就是我們通常所說的虛擬專用網(Virtual Private Network ,VPN)。當數據離開發送者所在的區域網時,該數據首先被用戶湍連接到互聯網上的路由器進行硬體加密,數據在互聯網上是以加密的形式傳送的,當達到目的LAN的路由器時,該路由器就會對數據進行解密,這樣目的LAN中的用戶就可以看到真正的信息了。
3. 如何以編程方式創建一個新的Android 4.0 VPN介面
關於Android VPN編程,網上的資料比較少,本人最近有一個關於在Android平台下開發VPN 客戶端的項目,在項目剛開始的時候,進行比較艱難,主要是android(4.0之前)的VPN領域鮮有API可供直接調用,也沒有官方的說明文檔。經過將近一個星期的研究,終於有些頭緒,在此本人願將一些經驗與大家共享。
http://blog.csdn.net/whyonly/article/details/7741270
有代碼教程,請參考使用。
4. 網路管理員要懂得編程語言嗎
一:做水晶頭和布置網線----------------(最基本的要求) 二:設置網路協議,架構區域網----------(基本要求) 三:組裝電腦,維修電腦故障------------(基本要求。很多人就只會組裝電腦還認為自己很厲害,BS) 四:簡單的配置交換機和路由-------------(基本要求) 五:了解網路原理,在出現網路問題時,查找到問題設備-----(基本要求) 六:了解組策略,熟悉office等工作用常用軟體-------------(基本要求) 七:了解windows2000/2003-----------(基本要求) 八:了解IIS和sql和FTP----------------(基本要求) 一:了解域---------------------------(標准要求) 二:了解三層交換機、高級路由器、硬體防火牆-------(標准要求) 三:了解郵件伺服器-------------------(標准要求) 四:了解一些主要網路埠-------------(標准要求) 五:了解使用網路監控軟體--------------(標准要求) 六:熟練設置windows2000/2003------(標准要求) 七:熟練設置IIS、SQL和FTP伺服器------(標准要求) 八:熟悉伺服器機櫃、排線器等,會搭建伺服器機櫃----(標准要求) 九:了解電話交換機--------------------(標准要求) 十:了解專線、光纜、ADSL等各種網路接入方式---------(標准要求) 十一:了解VPN、Vlan等網路原理--------(標准要求) 一:能夠獨立搭建郵件伺服器---------------------(嚴格要求) 二:熟悉三層交換機、高級路由器、硬體防火牆------(嚴格要求) 三:能夠獨立搭建網站、文件、FTP等伺服器--------(嚴格要求) 四:如果能自學一門編程語言最好-----------------(嚴格要求) 五:熟悉linux伺服器----------------------------(嚴格要求) 六:熟練使用網路監控軟體-----------------------(嚴格要求) 七:熟悉高級電話交換機技術------(嚴格要求)
5. 網路編程問題,如何使區域網中的電腦與外網電腦建立鏈接
尼瑪,你沒改如何代碼的話,那麼客戶端連接的伺服器IP地址就是原來的,這么可能成功。
單機測試慣例是直接獲取本地IP,外網連接,需要幫客戶端的連接IP改成你的所用(也就是伺服器所在的主機的IP) ,我覺得你該先學學點對點的,然後才是這類的……
6. 如何編程實現一個PPTP的VPN連接
第一步:下載《九~州~IP》
第二步:選擇所需地區
第三步:完成連接
第四步:查詢IP
第五步:打開限制
多IP地區
7. 網路工程需不需要編程對編程要求高嗎難學嗎該怎麼學
無論你哪個方向編程都是必須學習的,也是應該掌握的。不過集成或者維護工程的話就不會要很專業的編程,比如你要懂(不是精通哦)php、js、shell腳本等,這在工作中可以提升你的價值。不過更重要的是學會sql、oracle、win server、腳本、linux、cisco(NP一般就夠用)、以及juniper防火牆、vpn等一些常用的,這會在工作中接觸的。程序能做到了解,需要時知道怎麼通過網路實現就可以了。