Общие > Базы данных
Использование масок
ThE0ReTiC:
Xander
А может и можно. :)
Я просто через регулярки такую проблему решал и знаю, что это работает.
Ardzhan:
Maniac
Да... Именно это. Если бы наоброт выбрать маску из базы, тогда проще SeLECT... Where ip LIKE \'127.0.0.%\'...
А как проверить, что одна из масок в базе соответствует IP???
Ardzhan:
Xander Не пашут эти биты...
Сделал функцию:
function comparemask($string, $mask){
$mask=str_replace(".", "\\.", $mask);
$mask=str_replace("*", "(.+)", $mask);
if (preg_match ("/$mask/i", $string)) {return 1;} else {return 0;}
}
Ну и что??? Выгружать теперь всю таблицу? :(
Макс:
Ardzhan
если маски будут лишь 127.0.0.* или 127.0.*.* то имхо можно и через функции INET_ATON , INET_NTOA (не знаю быстрее ли они чем REGEXP)
если маски будут типа 127.*.0 то , как тебе уже тут писали - через REGEXP.
Xander:
У меня есть ощущение, что пробежаться с битовыми операциями в PHP-массиве может быть быстрее, чем с регекспами в базе, но я в этом не уверен. А битовые операции MySQL действительно с символами не работают :(
Навигация
Перейти к полной версии