IPv6 by Hostname

bauchinj

Erfahrenes Mitglied
Hallo,

es gibt in php die tolle Funktion gethostbyname(HOSTNAME). Hier wird eine IPv4 Adresse zurückgeliefert. Gibt es eine äquivalente Funktion auch für IPv6? Gibt es eine Funktion, die alle Adressen, die der Server zurückgibt ausliest?

http://www.google.at liefert zB (Stand heute):

173.194.35.183
173.194.35.184
173.194.35.191
2a00:1450:4016:801::1017

Es wäre eine toll, wenn man alle Adressen in ein Array einlesen könnte.

Gibt es diese Möglichkeit oder muss ich auf eine andere Sprache zurückgreifen?

Besten Dank für die Auskunft.
 
Moin,
da mir am Wochenende nen bisschen langweilig war habe ich eine kleine Funktion geschrieben die genau das macht was du suchst.
PHP:
<?php
function get_all_ips_from_hostname($hostename,$ip6 = false)
{	
	// check the hostname
	if(!filter_var(gethostbyname($hostename), FILTER_VALIDATE_IP))
	{
    	return false;
    }
	
	$result = array();
	// get IPv4 
	$result	= gethostbynamel($hostename);
	
	if($ip6)
	{
		// get IPv6 
		$record	= dns_get_record($hostename,DNS_AAAA);
		
		if(empty($record))
		{
			$result[] = "No IPv6 found";
		}
		else
		{
			$result[] = $record[0]['ipv6'];
		}
	}
	
	return $result;
}
?>

Ich hoffe das hilft dir weiter.

Mit freundlichen Grüßen
Leon Bergmann
 
Zurück