remote_addr not returning IPv4 address
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
![Admin](/assets/logo_square_200-5d0d61d6853298bd2a4fe063103715b4daf2819fc21225efa21dfb93e61952ea.png)
Admin
Updated on July 07, 2022Comments
-
Admin almost 2 years
I am using xampp on localhost and when I use
$_SERVER["REMOTE_ADDR"]
it returns::1
(also does this inphpinfo()
). 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.