How to determine or retrieve visitor’s IP address using PHP

by Vivek Gite on September 15, 2006 · 21 comments

Q. How do I determine or retrieve visitor's IP address using PHP server side programming?

A. Use following enviorment variable to get visitor's IP address:

No Proxy detection
=> REMOTE_ADDR - Remote client IP address

With Proxy detection
=> HTTP_X_FORWARDED_FOR - Get Proxy server IP

PHP getenv() function
=> Use php getenv() function to read the value of the environment.

Here is PHP code (download source code link):

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

Try the demo here

Featured Articles:

Share this with other sys admins!
Facebook it - Tweet it - Print it -

{ 21 comments… read them below or add one }

1 Abhishek October 17, 2006

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

Reply

2 Marvin Henry February 6, 2007

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.

Reply

3 Rahman July 3, 2007

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

please help me

thanks

Reply

4 trupti July 15, 2007

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

Reply

5 David August 9, 2007

I never got it to work. The host always displays an error about an unexpected & when expecting ;
But here is a better way, just remember to use the as needed:
http://www.plus2net.com/php_tutorial/php_ip.php

Reply

6 Ogaden October 11, 2007

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 :)

Reply

7 erti November 9, 2007

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

Reply

8 RK Aggarwal November 24, 2007

very nicely given. thanx a tone

Reply

9 Muhammad March 23, 2008

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

Thanx,
Umair

Reply

10 Deepak Poolamadai June 13, 2008

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.

Reply
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

Reply

11 fRank September 28, 2008

nice work :)..

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

Reply

12 CN October 2, 2009

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

Reply

13 Gopalakrishana October 18, 2010

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

Reply

14 Gopalakrishnan October 18, 2010

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

Reply

15 Sumesh Narmath November 2, 2010

Excellent one! Thanks for uploading…

Reply

16 zahid November 22, 2010

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

Reply

17 RaphG March 9, 2011

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

Reply

18 love May 12, 2011

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

THANKS IN ADVANCE

Reply

19 Nitesh Ahir May 18, 2011

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?

Reply

20 Private101 August 9, 2011

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.

Reply

21 Tim November 8, 2011

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:

$PUserid=strip_tags($_POST['lUSER']);
	$Ppassword=Strip_tags($_POST['lPASSWORD']);
	$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';
			}
			else
			{// Some code to find the userid and validate the userid and password
}

Reply

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <blockquote> <pre> <a href="" title="">
What is 9 + 3 ?
Please leave these two fields as-is:
Solve the simple math so we know that you are a human and not a bot.




Previous post:

Next post: