我們單位某些人員每天8:00~16:00可以上規(guī)定的網(wǎng)站,下午16:00后可上網(wǎng)不受限制。如果能只在配置文件中更換指定的人員,其余的保持不變,這樣就可以達(dá)到定時(shí)開關(guān)部分固定人員上網(wǎng),又不影響一些臨時(shí)人員上網(wǎng)的目的。怎么實(shí)現(xiàn)呢?如果能夠把賬號(hào)文件讀出來,修改相應(yīng)的賬號(hào),再把文件寫回去不就解決了嗎?
經(jīng)過考慮選擇使用腳本來完成,簡(jiǎn)單實(shí)用。
先來觀察一下代理服務(wù)器軟件CCProxy的賬號(hào)信息是如何儲(chǔ)存的,下面是一個(gè)賬號(hào)的信息:
[User006] ——賬號(hào)ID UserName=VOIP-1——賬號(hào)名稱 Password=——賬號(hào)密碼 MACAddress=——網(wǎng)卡地址 IPAddressLow=192.168.0.8——地址段開始地址 IPAddressHigh=192.168.0.8——地址段結(jié)束地址 ServiceMask=98——開啟服務(wù)的組合碼 MaxConn=-1——最大連接數(shù) BandWidth=-1——使用帶寬數(shù) WebFilter=0——網(wǎng)站過濾類型(-1為無限制) TimeSchedule=-1——時(shí)間過濾類型 EnableUserPassword=0——使用密碼判斷連接用戶(0為不采用,1為采用) EnableIPAddress=1——使用IP判斷連接用戶(0為不采用,1為采用) EnableMACAddress=0——使用MAC判斷連接用戶(0為不采用,1為采用) 對(duì)我們有用的是IPAddressLow、IPAddressHigh、WebFilter這3條語句, 由于是單機(jī),因此IPAddressLow=IPAddressHigh。注意, WebFilter語句在IPAddressHigh下第4行,這在腳本中有所體現(xiàn)。 此腳本需要服務(wù)器具有FSO并且Wsript 5.6以上,具體腳本如下: dim fs1,fs2 dim file2 dim ts,s dim i '聲明FSO對(duì)象 set fs1=CreateObject(“Scripting.FileSystemObject”) set fs2=CreateObject(“Scripting.FileSystemObject”) '判斷是否有相應(yīng)的賬號(hào)文件是否存在,若存在繼續(xù)進(jìn)行,否則直接到結(jié)束釋放對(duì)象 if fs1.FileExists(“D:\CCproxy\accinfo.ini”)then '設(shè)置ts為打開的賬號(hào)文件 set ts=fs1.OpentextFile(“D:\CCproxy\accinfo.ini”,1) '創(chuàng)建一個(gè)新的文件,用以儲(chǔ)存更改后數(shù)據(jù) set file2 = fs2.CreateTextFile(“D:\CCproxy\accinfo2.ini”, True) '當(dāng)沒有到達(dá)文件尾 Do while ts.AtEndOfLine<>true '讀取一行 S = ts.ReadLine '如果是需更換的IP,則進(jìn)行 if trim(S)=trim(“IPAddressHigh=192.168.0.122”) or trim(S)=trim(“IPAddressHigh=192.168.0.40”) or trim(S) =trim(“IPAddressHigh=192.168.0.195”) then '把本行寫入file2文件中 file2.WriteLine s '繼續(xù)往下讀三行 for i=1 to 3 S = ts.ReadLine file2.WriteLine s Next '第四行 S = ts.ReadLine '判斷如果原來是關(guān)閉的就開啟,原來是開啟的就關(guān)閉,乒乓開關(guān) if S=“WebFilter=0” then S=“WebFilter=-1” else S=“WebFilter=0” end if '寫入file2文件 file2.WriteLine s else '不是需更換的IP直接寫入file2 file2.WriteLine s end if '循環(huán) loop '循環(huán)完畢后關(guān)閉對(duì)象 file2.close ts.close
'刪除原配置文件 if fs1.FileExists(“D:\CCproxy\accinfo.ini”) then fs1.DeleteFile(“D:\CCproxy\accinfo.ini”) end if
'把新文件更名為配置文件 if fs2.FileExists(“D:\CCproxy\accinfo2.ini”) then fs2.MoveFile “D:\CCproxy\accinfo2.ini”,“D:\CCproxy\accinfo.ini” end if
end if '釋放對(duì)象 set fs1=nothing set fs2=nothing
|