Функция ограничения IP
Если у вас есть хорошие предложения и алгоритмы, пожалуйста, свяжитесь со мной! ! :)
«***********************************************
"FunctionCheckip (cinput_ip, cbound_ip)
«CreateByByqqdao, [email protected]/11/28
«Примечание: сначала вам нужно циклироваться в соответствии с номером; затем определить, содержит ли он»-», если есть, выполнить разделенную обработку и, наконец, определить, находится ли она в пределах диапазона
"Параметры: cinput_ip, ip для проверки по поколению
«CBOUND_IP, данное формат диапазона, один IP и диапазон IP, диапазон IP используется в последний раз»-«Сегмент, если он»*», он должен быть размещен в последней цифре
«Добавить»: разрешить »после каждого диапазона означает, что логин разрешен, и добавление«: отказ »означает, что вход в систему отказывается. Для них используется несколько диапазонов»; «Изолирует их
"Например, 192.168.1*.*: All;
"Возвращение значения: true/false
"Обновление: 2001/12/05 Поддержки разрешают, отказаться от поддержки ' *', не хочу быть правильным? Поддержка, потому что это похоже на *
«***********************************************
functionCheckip (cinput_ip, cbound_ip)
dimcsingle_ip, ctemp_ip, cstart_ip, cend_ip
Checkip = false
csingle_ip = split (cbound_ip, ";")
fori = 0toubound (csingle_ip)
ifinstr (csingle_ip (i), «отказ») <> 0then »просто отказывается
ctemp_ip = left (csingle_ip (i), instr (csingle_ip (i), ":")-1)
ifinstr (ctemp_ip, "*") <> 0then " - широкий диапазон
CSTART_IP = LEAND (CTEMP_IP, instr (ctemp_ip, "*")-1)
ifleft (cinput_ip, len (cstart_ip)) = cstart_ipthen
Checkip = false
Выходная функция
эндиф
эндиф
ifinstr (ctemp_ip, "-") = 0then
CSTART_IP = CTEMP_IP
cend_ip = ctemp_ip
еще
CSTART_IP = LEAND (CTEMP_IP, Instr (CTEMP_IP, "-")-1)
cend_ip = left (cstart_ip, instrrev (cstart_ip, ".")-1)+"."+mid (ctemp_ip, instr (ctemp_ip, "-")+1)
эндиф
ifip2str (cinput_ip)> = ip2str (cstart_ip) andip2str (cinput_ip) <= ip2str (cend_ip)
Checkip = false
Выходная функция
эндиф
elseifinstr (csingle_ip (i), "разрешить") <> 0then "разрешить
ctemp_ip = left (csingle_ip (i), instr (csingle_ip (i), ":")-1)
ifinstr (ctemp_ip, "*") <> 0then " - широкий диапазон
CSTART_IP = LEAND (CTEMP_IP, instr (ctemp_ip, "*")-1)
ifleft (cinput_ip, len (cstart_ip)) = cstart_ipthen
Checkip = true
эндиф
эндиф
ifinstr (ctemp_ip, "-") = 0then
CSTART_IP = CTEMP_IP
cend_ip = ctemp_ip
еще
CSTART_IP = LEAND (CTEMP_IP, Instr (CTEMP_IP, "-")-1)
cend_ip = left (cstart_ip, instrrev (cstart_ip, ".")-1)+"."+mid (ctemp_ip, instr (ctemp_ip, "-")+1)
эндиф
ifip2str (cinput_ip)> = ip2str (cstart_ip) andip2str (cinput_ip) <= ip2str (cend_ip)
Checkip = true