How to know which version of the Internet Protocol (IP) a client is using when connecting to my server?
php
Solution
Check for IPv4
$ip = "255.255.255.255";
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
echo "Valid IPv4";
}
else {
echo "Invalid IPv4";
}
Check for IPv6
$ip = "FE80:0000:0000:0000:0202:B3FF:FE1E:8329";
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
echo "Valid IPv6";
}
else {
echo "Invalid IPv6";
}
For more, check PHP function `filter_vars` and `list of filters for validation`.
Problem
I want to check via php if someone connects to my site via IPv4 or IPv6. The client address can be found in `$_SERVER["REMOTE_ADDR"]` but how to check if it's IPv4 or IPv6 ?