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.
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.
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.
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.
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!