$ips IP address prefixes * @param list $forwarded_for X-Forwarded-For prefixes if IP address matches, empty array means anything */ function __construct(array $ips, array $forwarded_for = array()) { $this->ips = $ips; $this->forwarded_for= $forwarded_for; } function login($login, $password) { foreach ($this->ips as $ip) { if (strncasecmp($_SERVER["REMOTE_ADDR"], $ip, strlen($ip)) == 0) { if (!$this->forwarded_for) { return true; } if ($_SERVER["HTTP_X_FORWARDED_FOR"]) { foreach ($this->forwarded_for as $forwarded_for) { if (strncasecmp(preg_replace('~.*, *~', '', $_SERVER["HTTP_X_FORWARDED_FOR"]), $forwarded_for, strlen($forwarded_for)) == 0) { return true; } } } } } return false; } protected $translations = array( 'cs' => array('' => 'Zkontroluje IP adresu a povolí prázdné heslo'), 'de' => array('' => 'Überprüft die IP-Adresse und lässt ein leeres Passwort zu'), 'pl' => array('' => 'Sprawdzaj adres IP i zezwakaj na puste hasło'), 'ro' => array('' => 'Verificați adresa IP și permiteți parola goală'), 'ja' => array('' => 'IP アドレスの確認、及び空パスワードの許可'), ); }