IP limit function for the client

xiaoxiao2021-03-06  73

'*************************************' FUNCTION Checkip (Cinput_IP, CBound_ip) 'created by qqdao, qqdao@263.net 2001 / 11/28 'Description: First, it is necessary to cycle, then determine if "-", if there is a split processing, finally determine if the' parameter: Cinput_ip, the IP 'CBound_ip, given The range format is, single IP, and range IP, range IP finally uses "-" segmentation, if it is "*", you must add ": allow" after each range ": allow" means allowing login, add ": "Refer to refusing to log in. Multiple scope is ";" separated ", for example, 192.168.1 *. *: Allow; 192.168.1.1: allow; 192.168.1.1-10: refuse" 'return value: true / false' Update: 2001/12/05 Support Allow, Refuse supports' * ', don't want to be? Support, because and * almost' *************************************** FUNCTION Checkip (CINPUT_IP, CBOUND_IP)

DIM CSINGLE_IP, CTEMP_IP, CSTART_IP, CEND_IP

Checkip = false

CSINGLE_IP = Split (CBound_IP, ";")

For i = 0 to Ubound (csingle_ip)

If INSTR (CSINGLE_IP (I), "Refuse") <> 0 Then 'is rejected

CTEMP_IP = Left (CSINGLE_IP (I), INSTR (CSINGLE_IP (i), ":") - 1)

if INSTR (CTEMP_IP, "*") <> 0 THEN 'is a wide range

cstart_ip = left (ctemp_ip, instr (ctemp_ip, "*") - 1)

if LEFT (CINPUT_IP, LEN (CSTART_IP)) = cstart_ip Then

Checkip = false

EXIT FUNCTION

END IF

END IF

IF INSTR (CTEMP_IP, "-") = 0 THEN

cstart_ip = ctemp_ip

CEND_IP = CTEMP_IP

Else

cstart_ip = left (ctemp_ip, instr (ctemp_ip, "-") - 1)

CEND_IP = Left (cstart_ip, INSTRREV (cstract_ip, ") - 1) ". " MID (ctemp_ip, instr (ctemp_ip," - ") 1)

END IF

IF IP2STR (CINPUT_IP)> = IP2Str (cstart_ip) and ip2str (Cinput_ip) <= IP2Str (CEND_IP) THEN

Checkip = false

EXIT FUNCTION

END IF

Elseif INSTR (CSINGLE_IP (i), "allow") <> 0 THEN 'Allow

CTEMP_IP = Left (CSINGLE_IP (I), INSTR (CSINGLE_IP (i), ":") - 1)

If INSTR (CTEMP_IP, "*") <> 0 THEN 'is a wide range cstart_ip = left (ctemp_ip, instr (ctemp_ip, "*") - 1)

if LEFT (CINPUT_IP, LEN (CSTART_IP)) = cstart_ip Then

Checkip = TRUE

END IF

END IF

IF INSTR (CTEMP_IP, "-") = 0 THEN

cstart_ip = ctemp_ip

CEND_IP = CTEMP_IP

Else

cstart_ip = left (ctemp_ip, instr (ctemp_ip, "-") - 1)

CEND_IP = Left (cstart_ip, INSTRREV (cstract_ip, ") - 1) ". " MID (ctemp_ip, instr (ctemp_ip," - ") 1)

END IF

IF IP2STR (CINPUT_IP)> = IP2Str (cstart_ip) and ip2str (Cinput_ip) <= IP2Str (CEND_IP) THEN

Checkip = TRUE

Else

Checkip = false

END IF

END IF

NEXT

END FUNCTION

'*****************************' Function IP2STR (CIP) 'created by qqdao, qqdao@263.net 2001/11 / 28 'Reference IP IP Algorithm' Parameters: CIP IP Address 'Return Value: Convert Naturation' ************************************ **

Function IP2STR (CIP)

DIM STR1, STR2, STR3, STR4

DIM CIP_TEMP

IF CIP = "127.0.0.1" THEN CIP = "192.168.0.1"

STR1 = Left (CIP, INSTR (CIP, ".") - 1)

CIP_TEMP = MID (CIP, INSTR (CIP, ".") 1)

STR2 = Left (CIP_TEMP, INSTR (CIP_TEMP, ".") - 1)

CIP_TEMP = MID (CIP_TEMP, INSTR (CIP_TEMP, ") 1)

STR3 = Left (CIP_TEMP, INSTR (CIP_TEMP, ") - 1)

STR4 = MID (CIP_TEMP, INSTR (CIP_TEMP, ") 1)

IF isnumeric (str1) = 0 or isnumeric (str3) = 0 or isnumeric (str4) = 0 THEN

Else

IP2STR = CINT (str1) * 256 * 256 * 256 CINT (STR2) * 256 * 256 CINT (STR3) * 256 CINT (STR4) -1

END IF

END FUNCTION

转载请注明原文地址:https://www.9cbs.com/read-92496.html

New Post(0)