Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

PHP Network gethostbyname() Function



The PHP Network gethostbyname() function is used to get an Internet host's IPv4 address from its hostname. When you provide a hostname as a string, it returns the corresponding IP address. This is necessary for resolving domain names to their respective IP addresses.

The function only accepts IPv4 addresses, not IPv6. If the hostname cannot be resolved, it returns the original string. DNS lookups can be easily implemented in your programs. This function is deprecated in newer PHP versions; so, use getaddrinfo.

Syntax

Below is the syntax of the PHP Network gethostbyname() function −

string gethostbyname(string $hostname)

Parameters

This function accepts $hostname parameter which is the host name or domain name that you want to resolve to an IPv4 address.

Return Value

The gethostbyname() function returns the IPv4 address as a string (e.g., "93.184.216.34"). If the function fails to resolve the hostname, it returns the original hostname string.

PHP Version

First introduced in core PHP 4, the gethostbyname() function continues to function easily in PHP 5, PHP 7, and PHP 8.

Example 1

First we will show you the basic example of the PHP Network gethostbyname() function to get the IPv4 address for a given hostname. It then prints the IP address. If the hostname cannot be resolved, it will return the original hostname.

<?php
   // Simple example to get IPv4 address for a given hostname
   $hostname = "www.tutorialspoint.com"; 
   $ip = gethostbyname($hostname); 
   echo "IP Address of $hostname is: $ip"; 
?>

Output

Here is the outcome of the following code −

IP Address of www.tutorialspoint.com is: 54.182.0.117

Example 2

In the below PHP code we will try to use the gethostbyname() function and try to resolve a non-existent domain 'domainnotpresent.xyz'. If the function fails so it will return the original hostname. Then it checks and displays an appropriate error message.

<?php
// Example to handle failure of gethostbyname()
$hostname = "domainnotpresent.xyz"; 
$ip = gethostbyname($hostname); 

if ($ip == $hostname) {
    echo "Failed to resolve the hostname: $hostname";
} else {
    echo "IP Address of $hostname is: $ip";
}
?> 

Output

This will generate the below output −

Failed to resolve the hostname: domainnotpresent.xyz

Example 3

Now in the below code we will resolve multiple host names by providing the array of host names. The program will loop over an array of hostnames and call the gethostbyname() function for each and print the respective IP addresses. This will allow us handling multiple domains efficiently.

<?php
   // Resolve multiple hostnames
   $hostnames = ["www.google.com", "www.example.com", "www.github.com"];

   foreach ($hostnames as $hostname) {
      $ip = gethostbyname($hostname);
      echo "IP Address of $hostname is: $ip\n";
   }
?> 

Output

This will create the below output −

IP Address of www.google.com is: 142.250.183.132
IP Address of www.example.com is: 93.184.215.14
IP Address of www.github.com is: 20.207.73.82

Example 4

This program uses gethostbyname() function to convert a domain name to an IP address. The result is then compared to a valid IPv4 address using filter_var(). If the IP address is correct, it is displayed; otherwise, it provides an error message. This makes sure the returned IP address is valid.

<?php
   // Define host name here
   $hostname = "www.example.com"; 
   $ip = gethostbyname($hostname); 

   if (filter_var($ip, FILTER_VALIDATE_IP)) {
      echo "Valid IP Address of $hostname is: $ip";
   } else {
      echo "Failed to resolve a valid IP Address for $hostname";
   } 
?> 

Output

Following is the output of the above code −

Valid IP Address of www.example.com is: 93.184.215.14
php_function_reference.htm
Advertisements