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"];
}
Example #3
0
<?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);
        }
    }
Example #4
0
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;
}