public function getClientAddress()
{
if ($this->_clientAddress === null) {
if (!isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$this->_clientAddress = $_SERVER['REMOTE_ADDR'];
} else {
$client_address = $_SERVER['REMOTE_ADDR'];
if (Text::startsWith($client_address, '127.0.') || Text::startsWith($client_address, '192.168.') || Text::startsWith($client_address, '10.')) {
$this->_clientAddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$this->_clientAddress = $_SERVER['REMOTE_ADDR'];
}
}
}
return $this->_clientAddress;
}