How to get server's public IP address using PHP?
24,792
It is not possible to get Your IP address on that way if you run web server on same machine or local LAN where you run your browser client, you will always get local IP address.
If You still want to get Your public address from PHP script, on *nix servers which runs in same network as your browser client, you can get it via command like this:
$myPublicIP = trim(shell_exec("dig +short myip.opendns.com @resolver1.opendns.com"));
echo "My public IP: ".$myPublicIP;
Author by
Ganesh Babu
Updated on December 24, 2021Comments
-
Ganesh Babu over 2 years
I need to get Public IP address of the system using PHP. I tried the following function:
function get_server_ip() { $ipaddress = ''; if(getenv('HTTP_X_FORWARDED_FOR')) $ipaddress = getenv('HTTP_X_FORWARDED_FOR'); else if(getenv('HTTP_X_FORWARDED')) $ipaddress = getenv('HTTP_X_FORWARDED'); else if(getenv('HTTP_FORWARDED_FOR')) $ipaddress = getenv('HTTP_FORWARDED_FOR'); else if(getenv('HTTP_FORWARDED')) $ipaddress = getenv('HTTP_FORWARDED'); else if(getenv('REMOTE_ADDR')) $ipaddress = getenv('REMOTE_ADDR'); return $ipaddress; }
But, I got only the localhost IP
127.0.0.1
. I am in need of the server's public IP address. What function is available in PHP to get my public IP address which I get from this site:http://www.whatismyip.com/
-
Ismail about 7 yearsAnd it resolves extremely fast! Thanks!
-
Software Developer over 3 yearsThis works 100% thank you. My PC is running XAMPP on Ubuntu 20.04 X64