| Autor | Zpráva | ||
|---|---|---|---|
| artorie Profil |
Zdravím.
V regulárních výrazech jsem začátečník, a potřebovat bych napsat regulární výraz, který zkontroluje, jestli zadaná IP adresa je skutečně ip adresa. Nevím si rady, zatím mám jen function is_ip($ip){
if (preg_match("/^[0123456789][0123456789][0123456789][0123456789].[0123456789][0123456789][0123456789][0123456789].[0123456789][0123456789][0123456789][0123456789].[0123456789][0123456789][0123456789][0123456789].[0123456789][0123456789][0123456789][0123456789]$/", $ip)){
return TRUE;
}
else{
return FALSE;
}
}Moderátor Joker: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na
). |
||
| Joker Profil |
#2 · Zasláno: 16. 8. 2012, 12:26:04
artorie:
„potřebovat bych napsat regulární výraz, který zkontroluje, jestli zadaná IP adresa je skutečně ip adresa“ A řešení, která najde Google po zadání titulku vlákna, nevyhovují z jakého důvodu? |
||
| l564 Profil |
Můžete využít této funkce:
function ipvalidate($ip_addr)
{
if(preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$ip_addr))
{
$parts=explode(".",$ip_addr);
foreach($parts as $ip_parts)
{
if(intval($ip_parts)>255 || intval($ip_parts)<0)
return false;
}
return true;
}
else
return false;
}To potom jen vložíte do podmínky if(ipvalidate($_POST['ip']) == true){
// Zde je kod pro validní adresu
}
else{
// Nevalidni kod
die("Vaše ip je nevalidní");
}Nebo pomocí filtru můžete ověřit ip if (filter_var($_POST['ip'], FILTER_VALIDATE_IP)) {
echo "Tato ip je validni";
}A nebo zde máte funkci s (moment, hledá se) function is_valid_ipv4($ip)
{
return preg_match('/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.'.
'(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.'.
'(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.'.
'(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/', $ip) !== 0;
}Jen upozorňuji, že všechny tyto kód jsou pro IPv4 |
||
| Ugo Profil |
PHP >= 5.2
filter_var("192.168.1.100", FILTER_VALIDATE_IP)http://cz.php.net/manual/en/function.filter-var.php |
||
| king26 Profil |
#5 · Zasláno: 16. 8. 2012, 13:32:22
function validateIPv4($ip) {
return $ip == long2ip(ip2long($ip));
}
function validateIPv6($ip) {
// fast exit for localhost
if(strlen($ip) < 3) {
return $ip == "::";
}
// Check if part is in IPv4 format
if(strpos($ip, ".")) {
$lastcolon = strrpos($ip, ":");
if(!($lastcolon && validateIPv4(substr($ip, $lastcolon + 1)))) {
return false;
}
// replace IPv4 part with dummy
$ip = substr($ip, 0, $lastcolon).":0:0";
}
// check uncompressed
if(strpos($ip, "::") === false) {
return preg_match("/^(?:[a-f0-9]{1,4}:){7}[a-f0-9]{1,4}$/i", $ip);
}
// check colon-count for compressed format
if(substr_count($ip, ":") < 8) {
return preg_match("/^(?::|(?:[a-f0-9]{1,4}:)+):(?:(?:[a-f0-9]{1,4}:)*[a-f0-9]{1,4})?$/i", $ip);
}
return false;
} |
||
|
Časová prodleva: 4 dny
|
|||
| hazardrok Profil |
#6 · Zasláno: 20. 8. 2012, 11:54:43
Ahoj, já jsem na nětu našel např. toto:
^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$funguje to docela dobře, ale netestuje to úplně všechno. |
||
|
Časová prodleva: 13 let
|
|||
0
).