start ... ip из цикла ... end

Печать RSS
188

В
Автор
Пришелец
0
народ)) всем привет помогите решить задачку.
вот есть у меня БД с ip операторов в таблице имеется два поля `start` и `end` например

id = 1, local = UA, name = Astelite, start = 127.0.0.1, end = 127.0.0.255;

как мне узнать что это именно этот оператор например от ip 127.0.0.95
заранее спасибо
В
Автор
Пришелец
0
и че никто не знает?
А

Оранжевые штаны
0
Плохая реализация, лучше бы ip как число записал, тогда запрос уместился бы а 1 строчку. Не подкинешь базу?

ВЕЛИКИЙ и УЖАСНЫЙ!
0
1. vander, ну, как вариант, для сравнения тогда вырезай нафиг точки и определяй входит ли нужный ip(опять-таки без точек) в необходимый интервал.
Как-то так. Может можно и подругому
В
Автор
Пришелец
0
это исключается.. посколько в таком случае нужно выводить всю таблицу из БД эксплодить каждое ее значение на 4 части и каждое из них сравнивать со значением проэксплоденного шаблона именно который и нужно искать в интервале.. зделать некую маску. но это создаст неймоверную нагрузку на сервер... меня интересует можно ли как нидь из Базы данных мускула на ходу провести поиск по маске типа:
SELECT * FROM `operators` WHERE (`start` = '127.0.0.**');
было бы конечно неплохо но помоему это не возможно средствами мускула именно поэтому я и не добавлял тему в подраздел по БД...

ВЕЛИКИЙ и УЖАСНЫЙ!
0
Нафиг на 4 части? Просто прогоняй, банально, через str_replace и убирай нафиг все точки. Вот и всё. Я хз что тут ещё предложить.
А

Оранжевые штаны
0
Проще и лучше всего перевести через (ip2long вроде) в число. типа d = 1, local = UA, name = Astelite, start = 9871727001, end = 9989082585; и запрашивать по SELECT * FROM `operators` WHERE (`start` > 99957475 and `start`<99957475);
В
Автор
Пришелец
0
Муз-ТВ, ыыыыыыыыыыы у меня недостаточно КЦ плюс поставил бы сэнкс огромный.... ip2long - все сложные задачи решаются простыми уравнениями! smile )
В
Автор
Пришелец
0
ы новая проблема... ip2long в БД добавляет -1020264704 в чем трабла???
в бд значения безу из файла сам код который делает жизнь проще:
$file = file("file.txt");
	
	for ($i=0;$i<count($file);$i++)
	{
		$data = explode (";", $file[$i]);
		$result = mysql_query ("INSERT INTO `moboperator` (
                                `id` ,
                                `name`,
								`local`,
								`start`,
								`end`
                            )
                            VALUES (
                                NULL,  '".$data[1]."', '".$data[0]."', '".ip2long($data[2])."', '".ip2long($data[3])."'
                            );");
		
	}
в чем ошибка... ща почитаю лабу по функции...
В
Автор
Пришелец
0
sprintf() тоже не помогает!
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск