根据需要我也编写了一段,效率虽然不高,但是功能还算强大,呵呵
========================================================================
Function getDbl(byVal IP,Cvalue)
Dim regEx, Matches, DataStr
IP=IP&"."
Set regEx = New RegExp
regEx.Pattern = "(\d){1,3}."
regEx.Global = True
Set Matches = regEx.Execute(Replace(IP,"*",Cvalue))
DataStr=Matches.Item(0).Value _
&Space(4-Matches.Item(1).Length)&Matches.Item(1).Value _
&"_" _
&Space(4-Matches.Item(2).Length)&Matches.Item(2).Value _
&Space(4-Matches.Item(3).Length)&Matches.Item(3).Value
DataStr=Replace(Replace(Replace(DataStr," ","0"),".",""),"_",".")
getDbl=CDbl(DataStr)
End Function
Function IPTest(byVal startIP,byVal endIP,byVal testIP)
If Instr(startIP,"*")<Instr(endIP,"*") then startIP=endIP
IPTest =(getDbl(startIP,0)<=getDbl(testIP,0) and getDbl(endIP,255)>=getDbl(testIP,255))
End Function
因此编写下面函数,效率不高但是功能还算强大
=============================================================
Function getDbl(byVal IP,Cvalue)
Dim regEx, Matches, DataStr
IP=IP&"."
Set regEx = New RegExp
regEx.Pattern = "(\d){1,3}."
regEx.Global = True
Set Matches = regEx.Execute(Replace(IP,"*",Cvalue))
DataStr=Matches.Item(0).Value _
&Space(4-Matches.Item(1).Length)&Matches.Item(1).Value _
&"_" _
&Space(4-Matches.Item(2).Length)&Matches.Item(2).Value _
&Space(4-Matches.Item(3).Length)&Matches.Item(3).Value
DataStr=Replace(Replace(Replace(DataStr," ","0"),".",""),"_",".")
getDbl=CDbl(DataStr)
End Function
Function IPTest(byVal startIP,byVal endIP,byVal testIP)
If Instr(startIP,"*")<Instr(endIP,"*") then startIP=endIP
IPTest =(getDbl(startIP,0)<=getDbl(testIP,0) and getDbl(endIP,255)>=getDbl(testIP,255))
End Function
IPstart="200.13.1.1"
IPend="200.13.1.200"
Array_IPstart=split(Ipstart,".")
Array_IPend=split(Ipend,".")
如果要判断的IP在变量Target里,可以
Target="200.13.1.100"
Array_Target=split(Target,".")
Dim into
into=1
for int i=0 to 3
if Array_Target(i)<=Array_IPend(i) and Array_Target(i)>=Array_IPstart(i) then
into=into*1
else
into=into*0
end if
next
最后判断
if i=1 then
response.write "在范围内"
else
response.write "不在范围内"
end if