Crear 2 variables PHP que contengan la IP Publica v4 o v6

Necesito un codigo PHP que me genere la IP Publica v4 o v6 de la persona que visite la pagina, para poder registrarla en mi base de datos, he intendado hacerlo yo pero no se si hago lo correcto, ¿podrian hecharme una mano? gracias

$ip = $_SERVER['REMOTE_ADDR'];
$IP_Publica = '';
$IP_Publicav6 = '';
 
if( preg_match( '^([0-9]{1,3}\.){3}([0-9]{1,3}){1}$', $ip ) )
$IP_Publica = inet_pton( $ip );
else
$IP_Publicav6 = inet_pton( '::1' );