Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie Get_Client_version und filter_var (), um die IP -Legalität zu bestimmen

Verwenden Sie Get_Client_version und filter_var (), um die IP -Legalität zu bestimmen

gitbox 2025-05-10

In der PHP -Entwicklung ist häufig zu überprüfen, ob die vom Benutzer bereitgestellte IP -Adresse legal ist. In vielen Szenarien, insbesondere beim Umgang mit Client -Verbindungen oder API -Anfragen, ist die IP -Überprüfung eine entscheidende Funktion. In diesem Artikel wird erläutert, wie die Funktion von GET_CLIENT_VERSION () und der integrierten FILTER_VAR () -Funktion von PHP verwendet wird, um festzustellen, ob die IP-Adresse legal ist.

1. Ermitteln Sie die Client -IP -Adresse

Zunächst müssen wir die IP -Adresse des Kunden erhalten. In der Regel kann die Client -IP von Remote_ADDR im Hyperglobal -Array $ _server erhalten werden. In einigen Fällen kann Remote_addr die IP -Adresse des Proxy -Servers anstelle der realen IP -Adresse des Clients zurückgeben. Um sicherzustellen, dass die reale IP -Adresse des Kunden korrekt eingereicht werden kann, können wir den folgenden Code verwenden:

 function get_client_ip() {
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        return $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        return $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
        return $_SERVER['REMOTE_ADDR'];
    }
}

Die Funktion get_client_ip () priorisieren die HTTP -Headerfelder http_client_ip und http_x_forwarded_for , die häufig verwendet werden, um die reale IP -Adresse des Clients zu identifizieren. Wenn diese beiden Felder keine Werte haben, wird Remote_ADDR zurückgegeben, dh die Standard -Client -IP.

2. Verwenden Sie filter_var (), um die IP -Adresse zu überprüfen

Als nächstes verwenden wir die Funktion filter_var () von PHP, um zu überprüfen, ob die von uns erhaltene IP -Adresse legal ist. filter_var () ist eine sehr leistungsstarke Funktion, mit der Sie Werte basierend auf der Art der Bestätigung überprüfen können. Zur Überprüfung der IP -Adressen können wir die Option filter_validate_ip verwenden.

 $ip = get_client_ip();  // Holen Sie sich den KundenIPAdresse
if (filter_var($ip, FILTER_VALIDATE_IP)) {
    echo "IPAdresse合法:$ip";
} else {
    echo "IPAdresse不合法:$ip";
}

In diesem Beispiel prüft Filter_var () , ob das eingehende $ IP eine gültige IP -Adresse ist. Geben Sie True zurück, wenn die IP -Adresse legal ist, andernfalls geben Sie false zurück.

Unterstützt IPv4 und IPv6

Filter_validate_ip überprüft die IPv4- und IPv6 -Adressen. Wenn Sie nur IPv4- oder IPv6 -Adressen überprüfen müssen, können Sie den Typ einschränken, indem Sie das Flag angeben:

 // verifizierenIPv4Adresse
if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
    echo "IPv4Adresse合法:$ip";
} else {
    echo "IPv4Adresse不合法:$ip";
}

// verifizierenIPv6Adresse
if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
    echo "IPv6Adresse合法:$ip";
} else {
    echo "IPv6Adresse不合法:$ip";
}

Durch die Verwendung der Flags filter_flag_ipv4 oder filter_flag_ipv6 können wir nur Adressen von IPv4- bzw. IPv6 -Typen überprüfen.

3. umfassendes Beispiel: Bestimmen Sie, ob die IP -Adresse legal ist und verarbeiten Sie unterschiedliche Situationen

Schließlich können wir die Funktion get_client_ip () und filter_var () kombinieren, um ein vollständiges Beispiel zu schreiben, um festzustellen, ob die IP -Adresse der Kunden legal ist, und um sie entsprechend zu behandeln.

 // Holen Sie sich den KundenIPAdresse
$ip = get_client_ip();

// verifizierenIPAdresse是否合法
if (filter_var($ip, FILTER_VALIDATE_IP)) {
    echo "IPAdresse合法:$ip";
} elseif (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
    echo "IPv4Adresse合法:$ip";
} elseif (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
    echo "IPv6Adresse合法:$ip";
} else {
    echo "IPAdresse不合法:$ip";
}

In diesem Beispiel versuchen wir zunächst, die normale IP -Adresse zu überprüfen, wenn es sich nicht um eine normale IP handelt, und prüfen dann, ob es sich um eine legitime IPv4- oder IPv6 -Adresse handelt. Wenn keiner von ihnen die Kriterien erfüllt, lautet die Ausgabe "IP -Adresse ist illegal".

Ich hoffe, dieser Artikel hilft Ihnen zu verstehen, wie Sie Get_Client_Version () und filter_var () verwenden, um zu überprüfen, ob die IP -Adresse legal ist. Wenn Sie weitere Fragen zur PHP -Entwicklung haben, können Sie Fragen stellen!