mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Merge branch 'request-ip' into 2.x
This commit is contained in:
commit
af046fc7d6
2 changed files with 10 additions and 20 deletions
|
@ -417,20 +417,10 @@ class CakeRequest implements ArrayAccess {
|
|||
public function clientIp($safe = true) {
|
||||
if (!$safe && env('HTTP_X_FORWARDED_FOR')) {
|
||||
$ipaddr = preg_replace('/(?:,.*)/', '', env('HTTP_X_FORWARDED_FOR'));
|
||||
} elseif (!$safe && env('HTTP_CLIENT_IP')) {
|
||||
$ipaddr = env('HTTP_CLIENT_IP');
|
||||
} else {
|
||||
if (env('HTTP_CLIENT_IP')) {
|
||||
$ipaddr = env('HTTP_CLIENT_IP');
|
||||
} else {
|
||||
$ipaddr = env('REMOTE_ADDR');
|
||||
}
|
||||
}
|
||||
|
||||
if (env('HTTP_CLIENTADDRESS')) {
|
||||
$tmpipaddr = env('HTTP_CLIENTADDRESS');
|
||||
|
||||
if (!empty($tmpipaddr)) {
|
||||
$ipaddr = preg_replace('/(?:,.*)/', '', $tmpipaddr);
|
||||
}
|
||||
$ipaddr = env('REMOTE_ADDR');
|
||||
}
|
||||
return trim($ipaddr);
|
||||
}
|
||||
|
|
|
@ -711,18 +711,18 @@ class CakeRequestTest extends CakeTestCase {
|
|||
$_SERVER['HTTP_X_FORWARDED_FOR'] = '192.168.1.5, 10.0.1.1, proxy.com';
|
||||
$_SERVER['HTTP_CLIENT_IP'] = '192.168.1.2';
|
||||
$_SERVER['REMOTE_ADDR'] = '192.168.1.3';
|
||||
|
||||
$request = new CakeRequest('some/path');
|
||||
$this->assertEquals('192.168.1.5', $request->clientIp(false));
|
||||
$this->assertEquals('192.168.1.2', $request->clientIp());
|
||||
$this->assertEquals('192.168.1.3', $request->clientIp(), 'Use remote_addr in safe mode');
|
||||
$this->assertEquals('192.168.1.5', $request->clientIp(false), 'Use x-forwarded');
|
||||
|
||||
unset($_SERVER['HTTP_X_FORWARDED_FOR']);
|
||||
$this->assertEquals('192.168.1.2', $request->clientIp());
|
||||
$this->assertEquals('192.168.1.3', $request->clientIp(), 'safe uses remote_addr');
|
||||
$this->assertEquals('192.168.1.2', $request->clientIp(false), 'unsafe reads from client_ip');
|
||||
|
||||
unset($_SERVER['HTTP_CLIENT_IP']);
|
||||
$this->assertEquals('192.168.1.3', $request->clientIp());
|
||||
|
||||
$_SERVER['HTTP_CLIENTADDRESS'] = '10.0.1.2, 10.0.1.1';
|
||||
$this->assertEquals('10.0.1.2', $request->clientIp());
|
||||
$this->assertEquals('192.168.1.3', $request->clientIp(), 'use remote_addr');
|
||||
$this->assertEquals('192.168.1.3', $request->clientIp(false), 'use remote_addr');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue