PHP: Determine or Retrieve Visitor’s IP Address Using PHP Script

by on September 15, 2006 · 29 comments· LAST UPDATED April 4, 2013

in , ,

How do I determine or retrieve visitor's IP address using PHP server side programming under Unix/Windows operating systems?

Use the following environment variables to get visitor's IP address:
Tutorial details
DifficultyEasy (rss)
Root privilegesNo
Estimated completion timeN/A

No Proxy detection
REMOTE_ADDR - Get the remote client IP address

With Proxy detection
HTTP_X_FORWARDED_FOR - Get the proxy server IP address.

PHP getenv() function
Use php getenv() function to read the value of the environment. The syntax is:


Example: Sample code to get an IP address

Here is the PHP code:

 <title>What is my IP address?</title>
    if (getenv('HTTP_X_FORWARDED_FOR')) {
        $pipaddress = getenv('HTTP_X_FORWARDED_FOR');
        $ipaddress = getenv('REMOTE_ADDR');
echo "Your Proxy IP address is : ".$pipaddress. "(via $ipaddress)" ;
    } else {
        $ipaddress = getenv('REMOTE_ADDR');
        echo "Your IP address is : $ipaddress";

If GEOIP database installed and configured using Apache/Nginx/Lighttpd, try the following php code to get the visitors country name:

   $country = getenv('GEOIP_COUNTRY_NAME');
   echo "Your country : $country";

You can try the demo by visiting this url.

Tweet itFacebook itG+ itDownload PDF versionFound an error/typo on this page?

{ 29 comments… read them below or add one }

1 Abhishek October 17, 2006 at 3:55 am

it is working on localhost
but it doesn’t work after uploading it on website
i m getting blank page..


2 Marvin Henry February 6, 2007 at 7:42 am

I tried with the given php code “to determine or retrieve visitors ip address in PHP” in two different machines and got the same ip address.


3 Rahman July 3, 2007 at 11:07 am

I want to get visitor IP address into table of my database.

please help me



4 chenna kiran September 27, 2012 at 8:24 am

you can do it by simple code
just change host, user, password, dbname and table
first create a table and add two columns at least like ip_id and ipaddress.
then copy and paste the below code at last just change what you want.

mysql_connect(“host”,”user”,”password”) or die(‘problem in conection’);
mysql_select_db(“dbname”) or die(‘problem in database’);
mysql_query(“INSERT INTO table_name (‘ipaddress’) VALUES (‘”.$ipaddress .”‘)”) or die(“error in querry”);

now you have ipaddress in your database table.


5 trupti July 15, 2007 at 2:53 pm

i am getting a blank page after i paste the code onto my website. plz help.


6 Ogaden October 11, 2007 at 8:30 pm

Excellent tutorial!

It works for me. I havent uploaded it to my site yet. But it looks find and i guess it should work.

Thanks :)


7 erti November 9, 2007 at 10:14 pm

In line 12 and 15 delete and rewrite the ” and it will work.


8 RK Aggarwal November 24, 2007 at 1:14 am

very nicely given. thanx a tone


9 Muhammad March 23, 2008 at 8:12 pm

The tutorial is really great it solved my problem at once…On my local machine and on my webserver it worked.



10 Deepak Poolamadai June 13, 2008 at 11:44 pm

Hi All
This code worked for me fine……
Thanks to the programmer……

And For this
# Marvin Henry Says:
February 6th, 2007 at 7:42 am

I tried with the given php code “to determine or retrieve visitors ip address in PHP” in two different machines and got the same ip address.

I think u get a Ip address from the DHCP server.
In This case You should the ip address of the Server and not of the client Machine.

Anyways this solved my problem….
Thanks a ton.

Deepak Poolamadai


11 fRank September 28, 2008 at 4:28 am

nice work :)..

But how will you know if the user is using a socks server?


12 CN October 2, 2009 at 3:21 am

When putting this code into a page, make sure has the “.php” extension, and not “.html” or “.htm”


13 Gopalakrishana October 18, 2010 at 10:11 am

Help me .I want try connect to computer in php programing .so please some example progarm and explain me
Thank You


14 Gopalakrishnan October 18, 2010 at 10:14 am

Help me .I want try connect two computer in php programing using socket please some example progarm and explain me


15 Sumesh Narmath November 2, 2010 at 1:39 pm

Excellent one! Thanks for uploading…


16 zahid November 22, 2010 at 4:01 pm

Great … Thanks for the post .. I was thinking about how to determine the country from this ip address ?


17 RaphG March 9, 2011 at 3:04 am

Good code. It’s useful. Thanks for providing that one.


18 love May 12, 2011 at 7:14 am

Hello evry1….I wanna 9 the ip address of local machine in the form of 192.168…….but i m getting the server’s ip address……. so can any1 give me solution of dis problm



19 Nitesh Ahir May 18, 2011 at 12:42 pm

I am PHP web developer & CEO of web development company. I have excluded my office’s IP address from Google analytics.

But, I am little bit confuse with data of Google analytics which still give me details regarding my office staff member’s visit.

Can I make some integration to solve this issue? I want to check IP address of all visitors who are visiting my website in specific time frame.

Can you give me some idea about it or not? May I do it with help of Google analytics?


20 Private101 August 9, 2011 at 7:01 pm

Hold on. You said it can get the IP address of someone using a proxy. NOT TRUE. I’ve just tested this on a variety of proxies, and it didn’t stop it. Totally useless extra line of code.


21 Tim November 8, 2011 at 12:17 am

I am enhancing my website with php code I have the following code that will display a message to the suspect of an sql injection what I would like to do is add some code to log the visitors IP address to a table called sql_injection_suspects where it will store the IP address and the time of the event and the value of the save string:

	$sqlSafeUserid=mysqli_real_escape_string($con, $_POST['lUSER']);
	//Query users table and Email table to see if either exist
		$queryUserid = mysqli_query($con,"SELECT UserID, Password FROM tt_users WHERE UserID='$sqlSafeUserid'");
		$rowUserid = mysqli_num_rows($queryUserid);
			if (strpos($sqlSafeUserid, '\\') !== false)
			echo 'your attempt to inject sql into my database has been reported we have modified your input to: ' .$sqlSafeUserid .'';
			echo '\'s and "s are not permited in feilds that query databases and will be prefixed with a \\';
			echo 'Click here to leave my website with your head hanging in shame';
			{// Some code to find the userid and validate the userid and password


22 AlAa YoSeF March 21, 2012 at 3:32 pm

Hi every one my name is AlAa

My problem with $_SERVER[‘remote_addr’]

I’m not sure if I’m having a problem with the installation of PHP on the server or if there’s something that I’m not doing right in the code, but I am trying to capture the IP address of anyone that is trying to log into a secure part of a site. Regardless of my IP address, when I do:


echo $_SERVER[‘remote_addr’];

It returns ‘’. This is the first time I’ve written code that is being used on a Windows Server, so I don’t know if that has anything to do with it.

I’ve run phpinfo(), and in the PHP Variables section, it shows “_SERVER[“REMOTE_ADDR”]” : Does this mean that the php.ini file is setup wrong, or am I missing something?

i am running my own server on windows 7 iis7.5 with php as fastcgi and i am behind a router with a dynamic ip not static and i am using that give me a link to my router and i am opening 80 port in my router forwarding it to my id address and i have tested a php file that contains

tested it using tor network that give me ip out of my network to test that file always give me the same result i am trying to get IP address of the visitor and i asked someone of my friends to use this form it sends the same ip

i hope someone tells me what i am doing wrong and the solution for this problem

Thanks in advance


23 toodle bumpleskin May 11, 2012 at 4:22 pm

This is a good link, fixed the same error for me when I went through it!


24 PhpDev September 27, 2012 at 11:38 pm


It’s a great thing what you have given here… It solved my problem on Server.

Again thank you very much for this.

Thanks & Regards,


25 Ganesh February 9, 2013 at 4:25 am

i want add in my blogger , blogspot site, please help me your code php not work with blogspot any other idea please give me, i want see my visitors ip..!


26 Mahi September 12, 2014 at 7:28 am

Am using this code but i am getting only last part of ip address( : : :1).how can i get full ip address..if any one know answer please reply.


27 Mi ip December 17, 2014 at 11:51 am

hi! Thanks for share!!! It,s work for me. How can i make a my ip widget ?
Thanks again!


28 Naushad Ali December 22, 2014 at 4:07 pm



29 seema February 4, 2015 at 8:30 pm


Iam using same code but its displaying Your IP address is : ::1 .Please help me.


Leave a Comment

Tagged as: , , , , , , , , , , ,

Previous Faq:

Next Faq: