function check_ip_behind_proxy() { static $last_seen = ''; // Temporalely disabled, not useful return $_SERVER["REMOTE_ADDR"]; if (!empty($last_seen)) { return $last_seen; } if (!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) { $user_ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } else { if (!empty($_SERVER["HTTP_CLIENT_IP"])) { $user_ip = $_SERVER["HTTP_CLIENT_IP"]; } else { $last_seen = $_SERVER["REMOTE_ADDR"]; return $last_seen; } } $ips = preg_split('/[, ]/', $user_ip); foreach ($ips as $last_seen) { if (preg_match('/^[1-9]\\d{0,2}\\.(\\d{1,3}\\.){2}[1-9]\\d{0,2}$/s', $last_seen) && !isPrivateIP($last_seen)) { return $last_seen; } } $last_seen = $_SERVER["REMOTE_ADDR"]; return $last_seen; }
function check_ip_behind_proxy() { if (!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) { $user_ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } else { if (!empty($_SERVER["HTTP_CLIENT_IP"])) { $user_ip = $_SERVER["HTTP_CLIENT_IP"]; } else { return $_SERVER["REMOTE_ADDR"]; } } $ips = preg_split('/[, ]/', $user_ip); foreach ($ips as $ip) { if (preg_match('/^(\\d{1,3}\\.){3}\\d{1,3}$/s', $ip) && !isPrivateIP($ip)) { return $ip; } } return $_SERVER["REMOTE_ADDR"]; }
<?php include '../config.php'; $remote = $_SERVER["REMOTE_ADDR"]; $local_ips = gethostbynamel($_SERVER["HTTP_HOST"]); if (!isPrivateIP($remote) && !in_array($remote, $local_ips)) { syslog(LOG_NOTICE, "Meneame: send_pingback remote address {$_SERVER['REMOTE_ADDR']} is no local address ({$_SERVER['SERVER_ADDR']})."); echo "ein? {$_SERVER['REMOTE_ADDR']}\n"; die; } $linkid = (int) $_REQUEST['id']; if ($linkid <= 0) { echo "no id"; die; } $link = new Link(); $link->id = $linkid; if (!$link->read()) { echo "error reading link\n"; die; } // ignore_user_abort(); //run script in background // Send the trackback for the main link if ($tbs = $db->get_col("select trackback_id from trackbacks where trackback_link_id = {$link->id} and trackback_status='pendent'")) { foreach ($tbs as $tb_id) { $tb = new Trackback(); $tb->id = $tb_id; if ($tb->read()) { $res = $tb->send($link); } }
function check_ip_behind_proxy() { static $last_seen = ''; if(!empty($last_seen) ) return $last_seen; if ($_SERVER["HTTP_X_FORWARDED_FOR"]) { $user_ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } else if ($_SERVER["HTTP_CLIENT_IP"]) { $user_ip = $_SERVER["HTTP_CLIENT_IP"]; } else { $last_seen = $_SERVER["REMOTE_ADDR"]; return $last_seen; } $ips = preg_split('/[, ]/', $user_ip, -1, PREG_SPLIT_NO_EMPTY); foreach ($ips as $last_seen) { if (preg_match('/^[1-9]\d{0,2}\.(\d{1,3}\.){2}[1-9]\d{0,2}$/s', $last_seen) && !isPrivateIP($last_seen) ) { return $last_seen; } } $last_seen = $_SERVER["REMOTE_ADDR"]; return $last_seen; }