<?
function
check_ip(
$range
,
$ip
=
''
) {
if
(
$ip
==
''
)
$ip
=
getenv
(
"REMOTE_ADDR"
);
if
(
$ip
==
"127.0.0.1"
)
return
1;
$result
= 1;
if
(
ereg
(
"([0-9]+).([0-9]+).([0-9]+).([0-9]+)/([0-9]+)"
,
$range
,
$regs
)) {
$ipl
=
ip2long
(
$ip
);
$rangel
=
ip2long
(
$regs
[1] .
"."
.
$regs
[2] .
"."
.
$regs
[3] .
"."
.
$regs
[4]);
$maskl
= 0;
for
(
$i
= 0;
$i
< 31;
$i
++) {
if
(
$i
<
$regs
[5]-1) {
$maskl
=
$maskl
+ pow(2,(30-
$i
));
}
}
if
((
$maskl
&
$rangel
) == (
$maskl
&
$ipl
)) {
return
1;
}
else
{
return
0;
}
}
else
{
$maskocts
= split(
"."
,
$range
);
$ipocts
= split(
"."
,
$ip
);
for
(
$i
=0;
$i
<4;
$i
++) {
if
(
ereg
(
"[([0-9]+)-([0-9]+)]"
,
$maskocts
[
$i
],
$regs
)) {
if
( (
$ipocts
[
$i
] >
$regs
[2]) || (
$ipocts
[
$i
] <
$regs
[1])) {
$result
= 0;
}
}
else
{
if
(
$maskocts
[
$i
] <>
$ipocts
[
$i
]) {
$result
= 0;
}
}
}
}
return
$result
;
}
function
auth_ip(){
$result
= 0;
$null_check
= 1;
$path
=
"ip.cf"
;
$fg
=@
fopen
(
$path
,
"r"
);
while
(
$line
=@
fgets
(
$fg
,1024)){
$line
= trim(
$line
);
$line
=
ereg_replace
(
"#.*"
,
""
,
$line
);
if
(
$line
!=
""
){
$null_check
= 0;
if
(check_ip(
$line
)) {
fclose(
$fg
);
return
1;
}
}
}
@fclose(
$fg
);
if
(
$null_check
== 1)
return
1;
return
$result
;
}
?>