Cron Job的REMOTE ADDR问题

时间:2011-11-03 17:34:25

标签: php

我需要获取访问者的IP,但是当cron运行时,它发现REMOTE ADDR是未定义的索引。事实上,当文件与cron一起运行时,没有远程地址。

如何避免此问题?

在PHP中是否有办法说“如果REMOTE ADDR存在则考虑它,如果不存在(因为它是从cron运行的话)”然后绕过它“??

$ip=$_SERVER['REMOTE_ADDR'];


$allowed_ips = array("82.61.144.100", "82.64.144.100");

if (!in_array($ip, $allowed_ips)) {
header("Location: http://pitchmystuff.co.uk/coming_soon/");

}

2 个答案:

答案 0 :(得分:7)

更好的方法是使用

if ((php_sapi_name() == 'cli')) {
  ... running as commandline/cron script ...
}

代替。

答案 1 :(得分:2)

尝试:

if (isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR'])) {
  $ip = $_SERVER['REMOTE_ADDR'];
}

你的问题可能比我看到的更复杂。