Помогите отфильтровать IP

Статус
В этой теме нельзя размещать новые ответы.

MaximM

Гуру форума
Регистрация
25 Сен 2007
Сообщения
166
Реакции
84
Здравствуйте, есть проверка IP в условии на PHP:
PHP:
$user_ip=$REMOTE_ADDR;  

$se_ip="127.128.129.";  

$ip=ereg("($se_ip)([1-255])", $user_ip, $regs);  

if($ip) print "попал";  
else print "не попал";
то есть с помощью укуп проверяется входит ли IP адрес в диапазон
127.128.129.1 - 127.128.129.255

Просьба помочь доделать выражение ereg? которое в примере
на такое, чтобы проверялся, входит ли Ip адрес в диапазон
127.128.1.1 - 127.128.255.255 (не меняется 127.128. а последние 2 цифры меняются)
То есть чтобы 2 последние цифры в диапазоне 1-255 были
 
Здравствуйте, есть проверка IP в условии на PHP:
PHP:
$user_ip=$REMOTE_ADDR;  
$se_ip="127.128.129.";  
$ip=ereg("($se_ip)([1-255])", $user_ip, $regs);  
if($ip) print "попал";  
else print "не попал";
то есть с помощью укуп проверяется входит ли IP адрес в диапазон
127.128.129.1 - 127.128.129.255
Просьба помочь доделать выражение ereg? которое в примере на такое, чтобы проверялся, входит ли Ip адрес в диапазон
127.128.1.1 - 127.128.255.255 (не меняется 127.128. а последние 2 цифры меняются)
То есть чтобы 2 последние цифры в диапазоне 1-255 были

лучше использовать прег
PHP:
$se_ip="127\.128\.";   

$ip=preg_match("~^($se_ip)([1-255]+)\.([1-255]+)$~", $user_ip, $regs);   

if($ip) print "попал";   
else print "не попал";
хотя, при такой постановке вопроса, достаточно просто найти в начале ип начало нужного диапазона
PHP:
$se_ip="127.128.";  
if(strpos($user_ip, $se_ip)===0){
     print "попал";   
}else{
     print "не попал"; 
    
}
 
лучше использовать прег
PHP:
$se_ip="127\.128\.";   
$ip=preg_match("~^($se_ip)([1-255]+)\.([1-255]+)$~", $user_ip, $regs);   
if($ip) print "попал";   
else print "не попал";
А этот прег точно раьботает?
а то у меня переменная $ip всегда почему то принимает значение 0
даже если IP совпадает
 
А этот прег точно раьботает?
а то у меня переменная $ip всегда почему то принимает значение 0
даже если IP совпадает
да) извиняюсь- в скобках задаётся диапазон символов, те [1-255] - это значит все символы начиная с 1 до 2, включая 5.
Вот нормально должна работать
PHP:
"~^($se_ip)(\d{1,3})\.(\d{1,3})$~"
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху