protected function checkAndSetIpPort($ip_address)
    {

        // Test for IPv6
        if (substr_count($ip_address, ':') > 1) {
            // See if we have a port, input should be in the format [::1]:27015 or similar
            if (strstr($ip_address, ']:')) {
                // Explode to get port
                $server_addr = explode(':', $ip_address);

                // Port is the last item in the array, remove it and save
                $this->port_client = (int)array_pop($server_addr);

                // The rest is the address, recombine
                $this->ip = implode(':', $server_addr);

                unset($server_addr);
            } else {
                // Just the IPv6 address, no port defined, fail
                throw new Exception(
                    "The host address '{$ip_address}' is missing the port.  All "
                    . "servers must have a port defined!"
                );
            }

            // Now let's validate the IPv6 value sent, remove the square brackets ([]) first
            if (!filter_var(trim($this->ip, '[]'), FILTER_VALIDATE_IP, ['flags' => FILTER_FLAG_IPV6,])) {
                throw new Exception("The IPv6 address '{$this->ip}' is invalid.");
            }
        } else {
            // We have IPv4 with a port defined
            if (strstr($ip_address, ':')) {
                list($this->ip, $this->port_client) = explode(':', $ip_address);

                // Type case the port
                $this->port_client = (int)$this->port_client;
            } else {
                // No port, fail
                throw new Exception(
                    "The host address '{$ip_address}' is missing the port. All "
                    . "servers must have a port defined!"
                );
            }

            // Validate the IPv4 value, if FALSE is not a valid IP, maybe a hostname.  Try to resolve
            if (!filter_var($this->ip, FILTER_VALIDATE_IP, ['flags' => FILTER_FLAG_IPV4,])
                && $this->ip === gethostbyname($this->ip)
            ) {
                // When gethostbyname() fails it returns the original string
                // so if ip and the result from gethostbyname() are equal this failed.
                throw new Exception("Unable to resolve the host '{$this->ip}' to an IP address.");
            }
        }
    }
protected function checkAndSetIpPort($ip_address)
    {

        // Test for IPv6
        if (substr_count($ip_address, ':') > 1) {
            // See if we have a port, input should be in the format [::1]:27015 or similar
            if (strstr($ip_address, ']:')) {
                // Explode to get port
                $server_addr = explode(':', $ip_address);

                // Port is the last item in the array, remove it and save
                $this->port_client = (int)array_pop($server_addr);

                // The rest is the address, recombine
                $this->ip = implode(':', $server_addr);

                unset($server_addr);
            } else {
                // Just the IPv6 address, no port defined, fail
                throw new Exception(
                    "The host address '{$ip_address}' is missing the port.  All "
                    . "servers must have a port defined!"
                );
            }

            // Now let's validate the IPv6 value sent, remove the square brackets ([]) first
            if (!filter_var(trim($this->ip, '[]'), FILTER_VALIDATE_IP, ['flags' => FILTER_FLAG_IPV6,])) {
                throw new Exception("The IPv6 address '{$this->ip}' is invalid.");
            }
        } else {
            // We have IPv4 with a port defined
            if (strstr($ip_address, ':')) {
                list($this->ip, $this->port_client) = explode(':', $ip_address);

                // Type case the port
                $this->port_client = (int)$this->port_client;
            } else {
                // No port, fail
                throw new Exception(
                    "The host address '{$ip_address}' is missing the port. All "
                    . "servers must have a port defined!"
                );
            }

            // Validate the IPv4 value, if FALSE is not a valid IP, maybe a hostname.  Try to resolve
            if (!filter_var($this->ip, FILTER_VALIDATE_IP, ['flags' => FILTER_FLAG_IPV4,])
                && $this->ip === gethostbyname($this->ip)
            ) {
                // When gethostbyname() fails it returns the original string
                // so if ip and the result from gethostbyname() are equal this failed.
                throw new Exception("Unable to resolve the host '{$this->ip}' to an IP address.");
            }
        }
    }
protected function checkAndSetIpPort ( $ ip_address ) { // Test for IPv6 if ( substr_count ( $ ip_address , ':' ) > 1 ) { // See if we have a port, input should be in the format [::1]:27015 or similar if ( strstr ( $ ip_address , ']:' ) ) { // Explode to get port $ server_addr = explode ( ':' , $ ip_address ) ; // Port is the last item in the array, remove it and save $ this -> port_client = ( int ) array_pop ( $ server_addr ) ; // The rest is the address, recombine $ this -> ip = implode ( ':' , $ server_addr ) ; unset ( $ server_addr ) ; } else { // Just the IPv6 address, no port defined, fail throw new Exception ( "The host address '{$ip_address}' is missing the port.  All " . "servers must have a port defined!" ) ; } // Now let's validate the IPv6 value sent, remove the square brackets ([]) first if ( ! filter_var ( trim ( $ this -> ip , '[]' ) , FILTER_VALIDATE_IP , [ 'flags' => FILTER_FLAG_IPV6 , ] ) ) { throw new Exception ( "The IPv6 address '{$this->ip}' is invalid." ) ; } } else { // We have IPv4 with a port defined if ( strstr ( $ ip_address , ':' ) ) { list ( $ this -> ip , $ this -> port_client ) = explode ( ':' , $ ip_address ) ; // Type case the port $ this -> port_client = ( int ) $ this -> port_client ; } else { // No port, fail throw new Exception ( "The host address '{$ip_address}' is missing the port. All " . "servers must have a port defined!" ) ; } // Validate the IPv4 value, if FALSE is not a valid IP, maybe a hostname.  Try to resolve if ( ! filter_var ( $ this -> ip , FILTER_VALIDATE_IP , [ 'flags' => FILTER_FLAG_IPV4 , ] ) && $ this -> ip === gethostbyname ( $ this -> ip ) ) { // When gethostbyname() fails it returns the original string // so if ip and the result from gethostbyname() are equal this failed. throw new Exception ( "Unable to resolve the host '{$this->ip}' to an IP address." ) ; } } }
Check and set the ip address for this server

@param $ip_address

@throws \GameQ\Exception\Server
Check and set the ip address for this server