remote_addr not returning IPv4 address

11,272

Solution 1

::1 is an IPv6 address and an abbreviation for 0:0:0:0:0:0:0:1 that is the loopback address to the local machine. So ::1 is the same as 127.0.0.1 only via IPv6 instead of IPv4.

Solution 2

Your apache is listening for IPv6 connections by default (::1 being local loopback). If you really just want IPv4, try to disable disable IPv6 connections in your apache configuration:

If you want Apache to handle IPv4 connections only, regardless of what your platform and APR will support, specify an IPv4 address on all Listen directives, as in the following examples:

Listen 0.0.0.0:80
Listen 192.170.2.1:80

Solution 3

Go to XAMPP control panel. Open Apache(httpd.conf) which can be found in the first row i.e. Apache Module's Actions. Go to listen (you can Ctrl + F this) which shows 80 (if you have ipv6 active) change it to Listen 0.0.0.0:80 and you are done. Restart Apache and you will no longer see ::1 in your browser. This will happily return your localhost i.e. 127.0.0.1

Share:
11,272
Admin
Author by

Admin

Updated on July 07, 2022

Comments

  • Admin
    Admin almost 2 years

    I am using xampp on localhost and when I use $_SERVER["REMOTE_ADDR"] it returns ::1 (also does this in phpinfo()). Why does it do this? I want it to return a normal ip address like 127.0.0.1. My operating system is windows vista.