Function
I recieve IP address of user from node.js in IPv6 format and want to get IPv4 addresses in IPv4 format.
function get_simple_ip($ip) { $exploded_ip = explode(":", $ip); $size = sizeof($exploded_ip); if($size == 1) // ipv4 format return $ip; if($size == 4) // ipv4 in ipv6 format { if(empty($exploded_ip[0]) && empty($exploded_ip[1]) && strtoupper($exploded_ip[2]) == "FFFF") return $exploded_ip[3]; } return $ip; // default ipv6 }
This function only for my situation, in yours it can be some different.
Example
31.95.64.173 -> 31.95.64.173
::ffff:31.95.64.173 -> 31.95.64.173
::ffff:31.95.64.173 -> 31.95.64.173
::FFFF:31.95.64.173 -> 31.95.64.173
21DA:7654:DE12:2F3B:02AA:EF98:FE28:9C5A -> 21DA:7654:DE12:2F3B:02AA:EF98:FE28:9C5A
If you know better solution, please, share in comments.