public function getHostsForIp($ip)
    {
        // check binary representation of IP to avoid string case and short notation
        $ip = @inet_pton($ip);
        if ($ip === false) {
            return array();
        }

        $names = array();
        foreach (preg_split('/\r?\n/', $this->contents) as $line) {
            $parts = preg_split('/\s+/', $line, null, PREG_SPLIT_NO_EMPTY);
            $addr = array_shift($parts);

            // remove IPv6 zone ID (`fe80::1%lo0` => `fe80:1`)
            if (strpos($addr, ':') !== false && ($pos = strpos($addr, '%')) !== false) {
                $addr = substr($addr, 0, $pos);
            }

            if (@inet_pton($addr) === $ip) {
                foreach ($parts as $part) {
                    $names[] = $part;
                }
            }
        }

        return $names;
    }
public function getHostsForIp($ip)
    {
        // check binary representation of IP to avoid string case and short notation
        $ip = @inet_pton($ip);
        if ($ip === false) {
            return array();
        }

        $names = array();
        foreach (preg_split('/\r?\n/', $this->contents) as $line) {
            $parts = preg_split('/\s+/', $line, null, PREG_SPLIT_NO_EMPTY);
            $addr = array_shift($parts);

            // remove IPv6 zone ID (`fe80::1%lo0` => `fe80:1`)
            if (strpos($addr, ':') !== false && ($pos = strpos($addr, '%')) !== false) {
                $addr = substr($addr, 0, $pos);
            }

            if (@inet_pton($addr) === $ip) {
                foreach ($parts as $part) {
                    $names[] = $part;
                }
            }
        }

        return $names;
    }
public function getHostsForIp ( $ ip ) { // check binary representation of IP to avoid string case and short notation $ ip = @ inet_pton ( $ ip ) ; if ( $ ip === false ) { return array ( ) ; } $ names = array ( ) ; foreach ( preg_split ( '/\r?\n/' , $ this -> contents ) as $ line ) { $ parts = preg_split ( '/\s+/' , $ line , null , PREG_SPLIT_NO_EMPTY ) ; $ addr = array_shift ( $ parts ) ; // remove IPv6 zone ID (`fe80::1%lo0` => `fe80:1`) if ( strpos ( $ addr , ':' ) !== false && ( $ pos = strpos ( $ addr , '%' ) ) !== false ) { $ addr = substr ( $ addr , 0 , $ pos ) ; } if ( @ inet_pton ( $ addr ) === $ ip ) { foreach ( $ parts as $ part ) { $ names [ ] = $ part ; } } } return $ names ; }
Returns all hostnames for the given IPv4 or IPv6 address

@param string $ip
@return string[]
Returns all hostnames for the given IPv4 or IPv6 address