PHP: HowTo Read an IP Address of Remote Computer / Browser

Posted on in Categories , , last updated August 25, 2013

How do I read an IP address of remove system or browser using PHP server side programming language? How can I get client IP address and store it to the variable called $ip using php+apache?

PHP has in built facility to detect remote browser, IP address, and other properties. These values are assigned to special variable. In this case, it is assigned to a variable called REMOTE_ADDR. You can use any one of the following statement to obtained or read IP address.

PHP syntax to find out an IP address

The syntax is:







$ip = getenv('HTTP_CLIENT_IP');

PHP syntax to find out remote host name

The syntax is:

$hostname = gethostbyaddr($ip);


$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);


Create a file called client-ip.php and store or upload at your Web-server DocumentRoot (e.g. /var/www/html/client-ip.php):

// client-ip.php : Demo script by nixCraft <>
// get an IP address
// display it back
echo "<h2>Client IP Demo</h2>";
echo "Your IP address : " . $ip;
echo "<br>Your hostname : ". gethostbyaddr($ip) ;

Save and close the file. Open a web-browser and type your url:
Sample outputs:

Fig.01 client-ip.php output
Fig.01 client-ip.php output

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Share this on (or read 29 comments/add one below):

29 comment

  1. hi,

    I am trying to figure out the “spam” word enabled form submission like this one …anyone here can help me ..


  2. echo “ Your hostname : ” . GetHostByName($ip);

    You can get the host name from IP.gethostbyname

    gethostbyname – Get the IP address corresponding to a given Internet host name

    Try the gethostbyaddr for this task.

  3. hey! this is a child’s play! such an easy thing! i said that coz i am 15 and a hard core PHP developer!!

  4. I don’t understand something. 5 of my friends using different HOSTS in different CITIES used a script that logged each user’s IP address and time in a database and all their IP was exactly the same as mine. I used $_SERVER[‘REMOTE_ADDR’]

    1. Hey ben, all of your IP’s are the same since all of you are using the same ISP or the same main ISP:


      So the website actually detects your main_isp IP address since none of you have a dedicated IP address on the internet.

  5. They are all behind the same proxy-server. In that case $_SERVER[‘REMOTE_ADDR’] provides you with the ip-address of the proxy-server.

    This function will determine the real ip-adress:

    function ipCheck() {
    		if (getenv('HTTP_CLIENT_IP')) {
    			$ip = getenv('HTTP_CLIENT_IP');
    		elseif (getenv('HTTP_X_FORWARDED_FOR')) {
    			$ip = getenv('HTTP_X_FORWARDED_FOR');
    		elseif (getenv('HTTP_X_FORWARDED')) {
    			$ip = getenv('HTTP_X_FORWARDED');
    		elseif (getenv('HTTP_FORWARDED_FOR')) {
    			$ip = getenv('HTTP_FORWARDED_FOR');
    		elseif (getenv('HTTP_FORWARDED')) {
    			$ip = getenv('HTTP_FORWARDED');
    		else {
    			$ip = $_SERVER['REMOTE_ADDR'];
    		return $ip;
    1. it do not work if client computer is using ISA Server.

      but code is working fine if client is connected with DSL , or modem direct internet connection.

      can any one provide how do I resolved issue on intranet application/ Client is using ISA

  6. how can i get the ip address of the client requesting a particular url?
    if possible give me a php code for the same..

  7. supose am chatting with my friend using gtalk how would i get his ip address. [what command do i got to use in DOS]. what i got his ip what command [DOS} do i use to get his host name.
    One more thing to what command to view that a specified computer is online or not.

  8. Why do you have 2 x same conditions in this script ?

    elseif (getenv(‘HTTP_X_FORWARDED_FOR’)) {
    $ip = getenv(‘HTTP_X_FORWARDED_FOR’); x 2

    elseif (getenv(‘HTTP_FORWARDED’)) {
    $ip = getenv(‘HTTP_FORWARDED’); x 2

    1. they arent 2 same conditions in the script marco, if you check back you will notice all the conditions have a slight difference

  9. Simple working excellent

    $ip = $_SERVER['REMOTE_ADDR'];
    $hostaddress = gethostbyaddr($ip);
    $browser = $_SERVER['HTTP_USER_AGENT'];
    $referred = $_SERVER['HTTP_REFERER']; // a quirky spelling mistake that stuck in php
    print "Display IP address:";
    print "$ip";
    print "More detailed host address:";
    print "$hostaddress";
    print "Display browser info:";
    print "$browser";
    print "Where you came from (if you clicked on a link to get here:";
    if ($referred == "") {
    print "Page was directly requested";
    else {
    print "$referred";
  10. Great article, thank you it’s really useful for me because i want to track how many users logged into my website daily.

    Have a question? Post it on our forum!