Skip to content

Commit 20ecdc3

Browse files
authored
Merge pull request #55 from akrabat/52-no-remote-addr
Set to null if REMOTE_ADDR is empty or invalid
2 parents 17943ec + 9fa449f commit 20ecdc3

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

src/IpAddress.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,11 @@ protected function determineClientIpAddress($request): ?string
186186
$ipAddress = $remoteAddr;
187187
}
188188
}
189+
if ($ipAddress === null) {
190+
// do not continue if there isn't a valid remote address
191+
return $ipAddress;
192+
}
193+
189194
if (!$this->checkProxyHeaders) {
190195
// do not check if configured to not check
191196
return $ipAddress;

tests/IpAddressTest.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,17 @@ private function simpleRequest(IPAddress $middleware, $env, $attrName = 'ip_addr
2222
return $attributeValue;
2323
}
2424

25+
public function testMissingRemoteAddrSetsTheAttributeToNull()
26+
{
27+
$middleware = new IPAddress(true, []);
28+
$env = [
29+
'HTTP_X_FORWARDED_FOR' => '123.4.5.6',
30+
];
31+
$ipAddress = $this->simpleRequest($middleware, $env);
32+
33+
$this->assertSame(null, $ipAddress);
34+
}
35+
2536
public function testIpAddressIsSetByRemoteAddrIfCheckProxyHeadersIsFalse()
2637
{
2738
$middleware = new IPAddress(false, [], 'IP');

0 commit comments

Comments
 (0)