Blog

IP-Adresse mit PHP herausfinden

IP-Adresse mit PHP herausfinden

Ab und zu steht man vor der Herausforderung, dass man vom User die IP-Adresse herausfinden möchte.
Beispielsweise um schnell auf der aktuellen IP zu debuggen oder einen bestimmen IP-Adressen-Bereich Zugang zu einem Bereich zu gewähren oder auszuschließen.

Da man nicht immer direkt Zugriff via SSH auf Kundenserver hat und manchmal lediglich mit PHP so etwas ermöglichen kann, bietet es sich an, die IP-Adresse auszulesen und dann damit weiter zu arbeiten.

Das folgende Snippet liest verschiedenste $_SERVER-Variablen aus und gibt dann die erste gefundene IP zurück.
Wollt ihr einen Parameter priorisieren, schiebt den Key-Wert im $keys-Array einfach ein Stück weiter nach oben.

<?php

function getIp() {
    $keys = [
        'HTTP_CLIENT_IP', 
        'HTTP_X_FORWARDED_FOR',
        'HTTP_X_FORWARDED', 
        'HTTP_FORWARDED_FOR', 
        'HTTP_FORWARDED', 
        'REMOTE_ADDR'
    ];
    
    foreach($keys as $k) {
        if (isset($_SERVER[$k]) && !empty($_SERVER[$k]) && filter_var($_SERVER[$k], FILTER_VALIDATE_IP)) {
            return $_SERVER[$k];
        }
    }
    
    return null;
}

$ip = getIp();

?>

Leave a comment