(PHP) IP access för interval?

Trädvy Permalänk
Medlem
Plats
Skåne
Registrerad
Jan 2002

(PHP) IP access för interval?

Jag vill ha en sida med ett script som skickar skriver ut en till sida2.php om man ligger inom en viss range om inte skriver den ut ett medelande om att man saknar behörighet.

Hittade detta scriptet

<?php $allow = array("123.456.789", "456.789.123", "789.123.456"); if(!in_array($_SERVER['REMOTE_ADDR'], $allow) && !in_array($_SERVER["HTTP_X_FORWARDED_FOR"], $allow)) { $retry = 60 * 60; // = 60 minutes header("HTTP/1.1 503 Service Unavailable"); header("Retry-After: $retry"); echo "<h1>Site update in progress - Please return in 60 minutes!</h1>"; exit(); } ?>

Men jag vill bara ge en range på 125 adresser tillgång, typ:
123.123.123.1-123.123.123.125

Livets 3 pelare:
SEX, MAT & KAFFE.

Trädvy Permalänk
Legendarisk
Hedersmedlem
Plats
::1
Registrerad
Dec 2002

Abstractions all the way down.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2007

Lite orelaterat kanske, men för att vara helt korrekt ska du inte skicka ett 503 – Service Unavailable utan snarare ett 403 – Forbidden eller möjligtvis 401 – Unauthorized. Alltid trevligt med sidor som skickar en korrekt HTTP-status.

$lower = ip2long('123.123.123.1'); $upper = ip2long('123.123.123.125'); $ip = ip2long($_SERVER['REMOTE_ADDR']); if(!($lower <= $ip && $ip <= $upper)){ header("HTTP/1.1 401 Forbidden"); die(); }

Trädvy Permalänk
Medlem
Plats
Skåne
Registrerad
Jan 2002

Tack, perfekt

Livets 3 pelare:
SEX, MAT & KAFFE.