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

by on February 27, 2006 · 26 comments· LAST UPDATED August 25, 2013

in , ,

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?

Tutorial details
DifficultyEasy (rss)
Root privilegesNo
RequirementsPHP
Estimated completion time5m
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 = $_SERVER['REMOTE_ADDR'];
 

OR

 
$ip= $REMOTE_ADDR;
 

OR

 
$ip = $_SERVER['REMOTE_ADDR'];
 

OR

 
$ip = getenv('HTTP_CLIENT_IP');
 

PHP syntax to find out remote host name

The syntax is:

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

OR

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

Example

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

 
<?php
// client-ip.php : Demo script by nixCraft <www.cyberciti.biz>
// get an IP address
$ip = $_SERVER['REMOTE_ADDR'];
// 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:
http://your-sercer-name-here/client-ip.php
OR
http://127.0.0.1/client-ip.php
Sample outputs:

Fig.01 client-ip.php output

Fig.01 client-ip.php output

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 26 comments… read them below or add one }

1 soroccoheaven October 2, 2007 at 3:49 pm

hi,

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

Thanks

Reply

2 Dmitri Zhuchkov November 28, 2007 at 3:30 pm

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.

Reply

3 Rajesh January 2, 2008 at 1:23 pm

How to get the remote IP location?

Reply

4 Timmehx January 4, 2008 at 5:42 pm

<?php
$ip = $_SERVER['REMOTE_ADDR'];

And if you want to echo it use

that is what i use

Reply

5 Nilesh January 6, 2008 at 2:09 am

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

Reply

6 Nathan August 25, 2013 at 2:12 am

I’m sure you are, but not everyone is.

Reply

7 Ben December 11, 2008 at 3:40 pm

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']

Reply

8 Joshua April 22, 2011 at 10:12 pm

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

user1->ISP1->main_isp->internet
you->ISP3->main_isp->internet

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

Reply

9 Geert March 22, 2009 at 1:38 pm

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;
	}

Reply

10 Sarmad Mahar June 17, 2010 at 4:47 am

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

Reply

11 leni June 10, 2009 at 5:47 pm

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

Reply

12 Young Bobby October 22, 2009 at 3:21 pm

Yay;

Thanks it’s working fine !

Reply

13 chuman September 24, 2010 at 6:53 pm

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.

Reply

14 DarkCoder November 29, 2010 at 3:10 pm

Seems not to work for ‘localhost’ but works well with other IPs in the system

Reply

15 Marko April 12, 2011 at 9:01 am

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
}
and

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

Reply

16 Joshua April 22, 2011 at 10:49 pm

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

Reply

17 Magson Fernandes July 15, 2011 at 11:18 pm

Can any post a simple ip detection script or code. i need it please.

Reply

18 MoCua.Com August 6, 2011 at 8:46 pm

thanks and thanks

Reply

19 CodeSlayer September 1, 2011 at 12:18 am

Simple working excellent

<?php
$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";
}
?>

Reply

20 anand September 14, 2011 at 5:22 am

how to get ip with computer name in php

Reply

21 developer rashtra September 23, 2011 at 7:28 am

thanks for the code. Looking for php code to get computer name of a visitor.

Reply

22 lineesh January 20, 2012 at 6:43 am

thanks vivek

Reply

23 ram January 30, 2012 at 4:33 pm

how to send messages or popups to remote ip address

Reply

24 Jansha December 5, 2013 at 7:15 am

Very useful. Thanks for sharing

Reply

25 Zane April 17, 2014 at 3:31 pm

Great article, thank you it’s really useful for me because i want to track how many users logged into my website daily.

Reply

26 dhananjay October 20, 2014 at 9:21 am

hii..
anyone tell me how to detect the mysql ip address of remote database..

Reply

Leave a Comment

Tagged as: , ,

Previous Faq:

Next Faq: