//Touch connection
$stmt = new Statement("UPDATE {$GLOBALS['fc_config']['db']['pref']}connections SET updated=NOW() WHERE id=?");
$stmt->process($this->id);
//Touch room
$this->updateSelfRoom();
return;
}
}
$this->id = md5(uniqid(rand(), true));
$this->userid = ChatServer::isLoggedIn( $args );
$this->roomid = $this->getAvailableRoom($GLOBALS['fc_config']['defaultRoom']);
$color = $GLOBALS['fc_config']['themes'][$GLOBALS['fc_config']['defaultTheme']]['recommendedUserColor'];
if($color == null) $color = 0xFFFFFF;
$this->color = $color;
$this->state = 1;
$this->lang = $GLOBALS['fc_config']['defaultLanguage'];
// Paul M - Real ip detection
$realip = ''; $proxyip = '';
$ignoreprivate = true; // Set to false to allow private 'real' ip's //
if ($_SERVER['HTTP_FROM'] != '') $proxyip = $_SERVER['HTTP_FROM'];
if ($_SERVER['HTTP_FORWARDED'] != '') $proxyip = $_SERVER['HTTP_FORWARDED'];
if ($_SERVER['HTTP_CLIENT_IP'] != '') $proxyip = $_SERVER['HTTP_CLIENT_IP'];
if ($_SERVER['HTTP_X_FORWARDED_FOR'] != '') $proxyip = $_SERVER['HTTP_X_FORWARDED_FOR'];
if (preg_match("#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#" , $proxyip, $iplist))
{
$proxyip = $iplist[0];
if ($ignoreprivate and preg_match("#^(127|10|172\.(1[6-9]|2[0-9]|3[0-1])|192\.168|169\.254)\.#", $proxyip)) $proxyip = '';
}
else $proxyip = '';
if ($proxyip == '') $realip = $_SERVER['REMOTE_ADDR']; else $realip = $proxyip;
$this->ip = ($args['ip'] == null)? $realip : $args['ip'];
Taken from my connection.php
|