Ich möchte überprüfen, ob eine eingegebene Eingabe eine gültige IP-Adresse ist oder nicht. Ich hätte gerne eine bestimmte Funktion, die mir hilft, eine Benutzereingabe zu validieren.
Wie überprüfe ich, ob eine Benutzereingabe eine gültige IP-Adresse ist oder nicht?
Sanjay-Entwickler
verzeihen
filter_var($ip, FILTER_VALIDATE_IP)
Beispiel:-
if(filter_var($ip, FILTER_VALIDATE_IP)){
echo 'Valid IP';
} else {
echo 'Not Valid IP';
}
-
Normalerweise überprüfe ich auch, ob es sich nicht um eine private oder reservierte IP handelt:
filter_var($agree_ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)
– Eric B
15. Mai 2015 um 14:36 Uhr
-
Gibt es eine ähnliche Möglichkeit, um zu überprüfen, ob die Eingabe der Subnetzmaske des Benutzers gültig ist?
– Rahim Khoja
11. April 2016 um 20:11 Uhr
-
HINWEIS! Es validiert “::1” 🙁
– David Konstantin
4. August 2017 um 18:43 Uhr
-
@DavidConstantine Denn das ist eine gültige IPv6-Adresse.
– verzeihen
♦4. August 2017 um 18:52 Uhr
chiborg
// Usually you'd get the value from $_POST or $_GET
$ip = "10.3.1.5";
if(!filter_var($ip, FILTER_VALIDATE_IP)) {
echo "Not a valid IP address!";
}
Sie können dies ändern, indem Sie nach IPv4- und IPv6-IP-Adressen filtern und private und reservierte IPs ausschließen.
Durch die Nutzung preg_match();
function checkIPAddress($ipAddress)
{
return preg_match('/^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/', $ipAddress);
}
-
Es erkennt nur ipv4 ip. Nicht IPv6. Siehe beide IPs.
is2a02:a03f:e8ea:c00:5cbc:fd44:5a92:8399
und38.290.20.11
– Tut mir leid, ich sage es nicht
9. Januar 2021 um 13:17 Uhr
Bitte geben Sie nicht alle Großbuchstaben ein, das gilt in der Stake Overflow-Kultur als unhöflich. Außerdem ist das gesuchte Wort “Jungs”, nicht “Schwule”.
– König Skippus
2. Juni 2011 um 6:24 Uhr
@wallyk Ich bin mir auch ziemlich sicher, dass dies schon einmal gefragt wurde, aber verlinke zumindest auf die doppelte Frage. Die Seitenleiste zeigt nichts Passendes, also ist es anscheinend nicht so einfach zu finden. @SANJAY Bitte tun suche aber bevor du fragst. 🙂
– verzeihen
♦
2. Juni 2011 um 6:25 Uhr
@deceze: Ich habe nicht nach einer früheren Antwort gesucht, aber ich weiß, dass ich sie in den letzten Jahren mehrmals gefragt und beantwortet habe.
– Wallyk
2. Juni 2011 um 6:41 Uhr