扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
我们单位某些人员每天8:00~16:00可以上规定的网站,下午16:00后可上网不受限制。如果能只在配置文件中更换指定的人员,其余的保持不变,这样就可以达到定时开关部分固定人员上网,又不影响一些临时人员上网的目的。怎么实现呢?如果能够把账号文件读出来,修改相应的账号,再把文件写回去不就解决了吗?
经过考虑选择使用脚本来完成,简单实用。
先来观察一下代理服务器软件CCProxy的账号信息是如何储存的,下面是一个账号的信息:
[User006] ——账号ID
UserName=VOIP-1——账号名称
Password=——账号密码
MACAddress=——网卡地址
IPAddressLow=192.168.0.8——地址段开始地址
IPAddressHigh=192.168.0.8——地址段结束地址
ServiceMask=98——开启服务的组合码
MaxConn=-1——最大连接数
BandWidth=-1——使用带宽数
WebFilter=0——网站过滤类型(-1为无限制)
TimeSchedule=-1——时间过滤类型
EnableUserPassword=0——使用密码判断连接用户(0为不采用,1为采用)
EnableIPAddress=1——使用IP判断连接用户(0为不采用,1为采用)
EnableMACAddress=0——使用MAC判断连接用户(0为不采用,1为采用)
对我们有用的是IPAddressLow、IPAddressHigh、WebFilter这3条语句,
由于是单机,因此IPAddressLow=IPAddressHigh。注意,
WebFilter语句在IPAddressHigh下第4行,这在脚本中有所体现。
此脚本需要服务器具有FSO并且Wsript 5.6以上,具体脚本如下:
dim fs1,fs2
dim file2
dim ts,s
dim i
'声明FSO对象
set fs1=CreateObject(“Scripting.FileSystemObject”)
set fs2=CreateObject(“Scripting.FileSystemObject”)
'判断是否有相应的账号文件是否存在,若存在继续进行,否则直接到结束释放对象
if fs1.FileExists(“D:\CCproxy\accinfo.ini”)then
'设置ts为打开的账号文件
set ts=fs1.OpentextFile(“D:\CCproxy\accinfo.ini”,1)
'创建一个新的文件,用以储存更改后数据
set file2 = fs2.CreateTextFile(“D:\CCproxy\accinfo2.ini”, True)
'当没有到达文件尾
Do while ts.AtEndOfLine<>true
'读取一行
S = ts.ReadLine
'如果是需更换的IP,则进行
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
'继续往下读三行
for i=1 to 3
S = ts.ReadLine
file2.WriteLine s
Next
'第四行
S = ts.ReadLine
'判断如果原来是关闭的就开启,原来是开启的就关闭,乒乓开关
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
'循环
loop
'循环完毕后关闭对象
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
'释放对象
set fs1=nothing
set fs2=nothing
运行前上网有限制(如图1)。运行后上网限制取消(如图2)。
图1 有上网时限
图2 上网限制取消
使用此脚本写一简单批处理:
'无回显运行脚本
c:\winnt\system32\cscript.exe /nologo d:\\ccproxy.vbs
'下面两句合起来就是重起CCProxy服务
net stop ccproxy
net start ccproxy
此脚本结合计划任务(如图3),每周1-5早上7:58关闭上网,经过8小时后15:58开启上网,星期六和星期天开启上网。
图3 设置上网时限
经此,问题得以解决,开启部分人员上网不会影响到其他人员,并且定时执行,解放了网管的一部分精力。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者