Permalänk

(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

Permalänk
Legendarisk
Visa signatur

Abstractions all the way down.

Permalänk
Medlem

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(); }

Permalänk

Tack, perfekt