Obtener la dirección IP [PHP]

Hoy vamos a comentar una función con la que me topé por internet para obtener una ip


<?php
function getIP() {
    if (isset(
$_SERVER)) {
    if (isset(
$_SERVER['HTTP_X_FORWARDED_FOR'])) {
    return 
$_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
    return 
$_SERVER['REMOTE_ADDR'];
    }
    } else {
    if (isset(
$GLOBALS['HTTP_SERVER_VARS']['HTTP_X_FORWARDER_FOR'])) {
    return 
$GLOBALS['HTTP_SERVER_VARS']['HTTP_X_FORWARDED_FOR'];
    } else {
    return 
$GLOBALS['HTTP_SERVER_VARS']['REMOTE_ADDR'];
    }
    }
}
 
$ip getIP();  
?>


Es una función muy simple, primero comprueba si existe el array global $_SERVER en caso de que no exista intenta hacerlo lo mismo pero mediante el array $GLOBALS.
Algunos proxyes dejan la ip del usuario en HTTP_X_FORWARDED_FOR, por esta razón primero comprobamos si exsite, en caso de que exista esa es la IP real.
Sino tomamos el valor REMOTE_ADDR.

Este script, como todos los de GETIP, no garantiza que la ip tomada sea la verdadera pero tienes mas probabilidades que con otros que he visto en la red