Loading src/Listener/RegisterServiceListener.php +19 −1 Original line number Original line Diff line number Diff line Loading @@ -30,7 +30,7 @@ class RegisterServiceListener extends BaseRegisterServiceListener */ */ $host = isset($server['local_ip']) ? $server['local_ip'] : $server['host']; $host = isset($server['local_ip']) ? $server['local_ip'] : $server['host']; if (in_array($host, ['0.0.0.0', 'localhost'])) { if (in_array($host, ['0.0.0.0', 'localhost'])) { $host = $this->getInternalIp(); $host = $this->getRealInternalIp(); } } if (!filter_var($host, FILTER_VALIDATE_IP)) { if (!filter_var($host, FILTER_VALIDATE_IP)) { throw new \InvalidArgumentException(sprintf('Invalid host %s', $host)); throw new \InvalidArgumentException(sprintf('Invalid host %s', $host)); Loading @@ -45,4 +45,22 @@ class RegisterServiceListener extends BaseRegisterServiceListener return $result; return $result; } } protected function getRealInternalIp() { if (method_exists(self::class, 'getInternalIp')) { return $this->getInternalIp(); } $ips = swoole_get_local_ip(); if (is_array($ips) && ! empty($ips)) { return current($ips); } /** @var mixed|string $ip */ $ip = gethostbyname(gethostname()); if (is_string($ip)) { return $ip; } throw new \RuntimeException('Can not get the internal IP.'); } } } No newline at end of file Loading
src/Listener/RegisterServiceListener.php +19 −1 Original line number Original line Diff line number Diff line Loading @@ -30,7 +30,7 @@ class RegisterServiceListener extends BaseRegisterServiceListener */ */ $host = isset($server['local_ip']) ? $server['local_ip'] : $server['host']; $host = isset($server['local_ip']) ? $server['local_ip'] : $server['host']; if (in_array($host, ['0.0.0.0', 'localhost'])) { if (in_array($host, ['0.0.0.0', 'localhost'])) { $host = $this->getInternalIp(); $host = $this->getRealInternalIp(); } } if (!filter_var($host, FILTER_VALIDATE_IP)) { if (!filter_var($host, FILTER_VALIDATE_IP)) { throw new \InvalidArgumentException(sprintf('Invalid host %s', $host)); throw new \InvalidArgumentException(sprintf('Invalid host %s', $host)); Loading @@ -45,4 +45,22 @@ class RegisterServiceListener extends BaseRegisterServiceListener return $result; return $result; } } protected function getRealInternalIp() { if (method_exists(self::class, 'getInternalIp')) { return $this->getInternalIp(); } $ips = swoole_get_local_ip(); if (is_array($ips) && ! empty($ips)) { return current($ips); } /** @var mixed|string $ip */ $ip = gethostbyname(gethostname()); if (is_string($ip)) { return $ip; } throw new \RuntimeException('Can not get the internal IP.'); } } } No newline at end of file