ini_set('display_errors',1); error_reporting(E_ALL); function net2cidr($net) { for($n = 0; $net && 0xFFFF; $n++) { $net = $net << 1; } return $n; } function cidr2net($cidr) { $net = 1; for($n = 0; $n < 31-$cidr; $n++) { $net = $net << 1 | 1; } return ~$net; } function isValid($ip) { $nets=0; $nets=file("nets.dat"); $lIP=ip2long($ip); $valid=0; for ($i = 0; $i < count($nets); $i++) { $nets[$i] = trim($nets[$i],"\n"); list($sNet,$sMask)=explode("/",$nets[$i],2); $sIPMask=long2ip(cidr2net($sMask)); $lNet=ip2long($sNet); $lMask=ip2long($sIPMask); if (long2ip($lIP & $lMask) == long2ip($lNet & $lMask)) { $valid=1; } } return $valid; } function secondValid($ip) { $nets=0; $nets=file("bill2.dat"); $lIP=ip2long($ip); $valid=0; for ($i = 0; $i < count($nets); $i++) { $nets[$i] = trim($nets[$i],"\n"); list($sNet,$sMask)=explode("/",$nets[$i],2); $sIPMask=long2ip(cidr2net($sMask)); $lNet=ip2long($sNet); $lMask=ip2long($sIPMask); if (long2ip($lIP & $lMask) == long2ip($lNet & $lMask)) { $valid=1; } } return $valid; } function secondBilling($ip) { if (secondValid($ip)==1) { header("Location: https://kabinet.16x.zp.ua/"); } else { header("Location: https://billing.16x.zp.ua/"); } } $sIP=getenv('REMOTE_ADDR'); if (isValid($sIP)) { header("Location: https://billing.16x.zp.ua/"); } elseif (secondValid($sIP)) { header("Location: https://kabinet.16x.zp.ua/"); } else { #header("Location: /accessdenied"); #header("Location: /relay-to-billing"); echo "
Запорожский, Розовский, Бильмакский (Куйбышевский) район