Fungsi Pembatasan IP
Jika Anda memiliki saran dan algoritma yang bagus, silakan hubungi saya! Lai :)
“*******************************************************
"FunctionCheckip (cinput_ip, cbound_ip)
“CreateByqqdao, [email protected]/11/28
"Catatan: Pertama, Anda perlu bersepeda sesuai dengan angka; lalu tentukan apakah berisi"-", jika ada, lakukan pemrosesan split, dan akhirnya tentukan apakah itu dalam kisaran
"Parameter: cinput_ip, IP untuk diperiksa oleh generasi
"cbound_ip, format rentang yang diberikan adalah, IP tunggal, dan rentang IP, rentang IP terakhir digunakan"-"segmen, jika itu"*", harus ditempatkan pada digit terakhir
"Tambahkan": Izinkan "setelah setiap rentang berarti login diperbolehkan, dan menambahkan": Refuse "berarti login ditolak. Berbagai rentang digunakan untuk"; "mengisolasi mereka
"Misalnya, 192.168.1*.*: Izinkan; 192.168.1.1: Alallow; 192.168.1.1-10: Tolak"
"Nilai Pengembalian: Benar/Salah
"Pembaruan: 2001/12/05 Dukungan Izinkan, Refuse Supports ' *', tidak ingin benar? Dukungan, karena itu mirip dengan *
“*******************************************************
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), "Refuse") <> 0then "hanya menolak
ctemp_ip = kiri (csingle_ip (i), instr (csingle_ip (i), ":")-1)
ifinstr (ctemp_ip, "*") <> 0then "adalah rentang yang luas
cStart_ip = kiri (ctemp_ip, instr (ctemp_ip, "*")-1)
ifleft (cinput_ip, len (cstart_ip)) = cstart_ipthen
Checkip = false
fungsi keluar
endif
endif
ifinstr (ctemp_ip, "-") = 0then
CSTART_IP = CTEMP_IP
CEND_IP = CTEMP_IP
kalau tidak
cStart_ip = kiri (ctemp_ip, instr (ctemp_ip, "-")-1)
cend_ip = kiri (cstart_ip, instrrev (cstart_ip, ".")-1)+"."+mid (ctemp_ip, instr (ctemp_ip, "-")+1)
endif
ifip2str (cinput_ip)> = ip2str (cstart_ip) andip2str (cinput_ip) <= ip2str (cend_ip) lalu
Checkip = false
fungsi keluar
endif
elseifinstr (csingle_ip (i), "izinkan") <> 0then "Izinkan
ctemp_ip = kiri (csingle_ip (i), instr (csingle_ip (i), ":")-1)
ifinstr (ctemp_ip, "*") <> 0then "adalah rentang yang luas
cStart_ip = kiri (ctemp_ip, instr (ctemp_ip, "*")-1)
ifleft (cinput_ip, len (cstart_ip)) = cstart_ipthen
Checkip = true
endif
endif
ifinstr (ctemp_ip, "-") = 0then
CSTART_IP = CTEMP_IP
CEND_IP = CTEMP_IP
kalau tidak
cStart_ip = kiri (ctemp_ip, instr (ctemp_ip, "-")-1)
cend_ip = kiri (cstart_ip, instrrev (cstart_ip, ".")-1)+"."+mid (ctemp_ip, instr (ctemp_ip, "-")+1)
endif
ifip2str (cinput_ip)> = ip2str (cstart_ip) andip2str (cinput_ip) <= ip2str (cend_ip) lalu
Checkip = true