Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Network Functions : gethostbynamel

gethostbynamel

Get a list of IP addresses corresponding to a given Internet host name (PHP 4, PHP 5)
array gethostbynamel ( string hostname )

Example 1597. gethostbynamel() example

<?php
$hosts
= gethostbynamel('www.example.com');
print_r($hosts);
?>

The above example will output:

Array
(
   [0] => 192.0.34.166
)

Code Examples / Notes » gethostbynamel

info

The solution is simpel. Just add a . (point) to the end of the URL for correct name resolving.
Without this point PHP thinks it's a subdomain of your local domain and so returns the "local-IP".


skyld

Obviously, in some cases, not all IPs are likely to be useful while checking a hostname. Sometimes also, not all IPs will work. This code will check for the first WORKING IP from the list. Or at least it should - I haven't had time to test it yet.
Needs domain parameter, and port and max IPs to check are optional.
If port is not set, it will check HTTP port 80, and if max IPs to check is not set, it will only check the first 10 IPs from the list.
Hope it helps someone.
<?php
 function checkhostlist($domain, $port = 80, $maxipstocheck = 10) {
   $hosts = gethostbynamel($domain);
   for ($chk=0;$chk<$maxipstocheck;$chk++) {
     if (isset($hosts[$chk])) {
       $th = fsockopen($domain, $port);
       if ($th) {
         fclose($th);
         return $hosts[$chk];
         break;
       }
     }
   }
 }
?>


webdev

In PHP 5.0.4, gethostbynamel returns an empty string instead of false if the lookup fails. A simple workaround for this error is to use is_array() in an IF block:
<?
$hosts = gethostbynamel($hostname);
if (is_array($hosts)) {
    echo "Host ".$hostname." resolves to:
";
    foreach ($hosts as $ip) {
         echo "IP: ".$ip."
";
    }
} else {
    echo "Host ".$hostname." is not tied to any IP.";
}
?>


Change Language


Follow Navioo On Twitter
checkdnsrr
closelog
debugger_off
debugger_on
define_syslog_variables
dns_check_record
dns_get_mx
dns_get_record
fsockopen
gethostbyaddr
gethostbyname
gethostbynamel
getmxrr
getprotobyname
getprotobynumber
getservbyname
getservbyport
header
headers_list
headers_sent
inet_ntop
inet_pton
ip2long
long2ip
openlog
pfsockopen
setcookie
setrawcookie
socket_get_status
socket_set_blocking
socket_set_timeout
syslog
eXTReMe Tracker