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
Difficulty level Easy
Root privileges No
Requirements PHP+LAMP
Est. reading time N/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.

🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.

🐧 35 comments so far... add one

CategoryList of Unix and Linux commands
Disk space analyzersdf ncdu pydf
File Managementcat cp mkdir tree
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network UtilitiesNetHogs dig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
35 comments… add one
  • Abhishek Oct 17, 2006 @ 3:55

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

    • Abdul Manan Jan 16, 2016 @ 14:18

      it is also not working on local host,
      can you send me detailed code please

      • Harry Mar 15, 2016 @ 10:18

        It works. Your url will show as :::1

        The code is:

        // Check connection
        if (!$conn) {
            die("Connection failed: " . mysqli_connect_error());
        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";
  • Marvin Henry Feb 6, 2007 @ 7:42

    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.

  • Rahman Jul 3, 2007 @ 11:07

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

    please help me


    • chenna kiran Sep 27, 2012 @ 8:24

      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.

  • trupti Jul 15, 2007 @ 14:53

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

  • Ogaden Oct 11, 2007 @ 20:30

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

  • erti Nov 9, 2007 @ 22:14

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

  • RK Aggarwal Nov 24, 2007 @ 1:14

    very nicely given. thanx a tone

  • Muhammad Mar 23, 2008 @ 20:12

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


  • Deepak Poolamadai Jun 13, 2008 @ 23:44

    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

  • fRank Sep 28, 2008 @ 4:28

    nice work :)..

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

  • CN Oct 2, 2009 @ 3:21

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

  • Gopalakrishana Oct 18, 2010 @ 10:11

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

  • Gopalakrishnan Oct 18, 2010 @ 10:14

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

  • Sumesh Narmath Nov 2, 2010 @ 13:39

    Excellent one! Thanks for uploading…

  • zahid Nov 22, 2010 @ 16:01

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

  • RaphG Mar 9, 2011 @ 3:04

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

  • love May 12, 2011 @ 7:14

    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


  • Nitesh Ahir May 18, 2011 @ 12:42

    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?

  • Private101 Aug 9, 2011 @ 19:01

    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.

  • Tim Nov 8, 2011 @ 0:17

    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
  • AlAa YoSeF Mar 21, 2012 @ 15:32

    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

  • toodle bumpleskin May 11, 2012 @ 16:22

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

  • PhpDev Sep 27, 2012 @ 23:38


    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,

  • Ganesh Feb 9, 2013 @ 4:25

    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..!

  • Mahi Sep 12, 2014 @ 7:28

    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.

  • Mi ip Dec 17, 2014 @ 11:51

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

  • Naushad Ali Dec 22, 2014 @ 16:07


  • seema Feb 4, 2015 @ 20:30


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

    • srinu Jul 13, 2015 @ 0:34

      u r seeing in server comp so this way it will displays loopback address::
      check it in other computer you will see the ip .

  • Shubham Rana Oct 16, 2015 @ 10:19

    It’s a Nice and Simple Code…

  • zuber Oct 17, 2015 @ 9:45

    create a php page which show the ip address of client who is visting the website , on page load, alert my id address ,

    so plz help me dear sir plz help this problume

  • rufo Feb 3, 2016 @ 3:10

    nah. this gives ip address of the proxy server. Zzzz

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre> for code samples. Still have questions? Post it on our forum