Переменная $_SERVER['REMOTE_ADDR']
заполняется из-за Apache, запускаемого из командной строки, эта переменная не будет установлена, как и многие другие.
Кроме того, даже если он установлен, REMOTE_ADDR всегда будет локальным IP-адресом машины, на которой работает cron, поскольку вы не сможете запустить его удаленно.
[править]
Просто для согласованности, вот пример использования php_sapi_name
if(php_sapi_name() === 'cli') {
// You're running locally from the CLI
} else {
// You're running remotely, check against list of authorized ip addresses.
}
В вашем случае вы можете просто изменить свой if на:
if(php_sapi_name() != 'cli' && !$cron->isValidIp($_SERVER['REMOTE_ADDR'])) {
....