if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$pos = array_search('unknown',$arr);
if(false !== $pos) unset($arr[$pos]);
foreach ($arr as $k => $v) {
if(preg_match("/^10\.|^19\d{1}\.|^17\d{1}\./", trim($v))) {
unset($arr[$k]);
}
}
if(!count($arr)) throw new \Exception('ip 获取失败', 403);
// 过滤完数据 获取最后一个地址
$ip = trim(end($arr));
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}