|
|
|
|
|
для: Trianon
(11.01.2010 в 13:53)
| | Посмотрим! | |
|
|
|
|
|
|
|
для: Саня
(11.01.2010 в 13:40)
| | Спасибо, за понимание и советы, но всё же не стоит, права, не стоит. | |
|
|
|
|
|
|
|
для: Loki
(11.01.2010 в 17:36)
| | Если я правильно понял что вы имели ввиду, то следует понимать PHP вообще такого понятия как uns int не существует и то, в каком виде мы получаем int из базы ничего не изменит (будет ли там значение знака или нет PHP обрабатывает его как int). В самой же базе IP вполне поместится. | |
|
|
|
|
|
|
|
для: Саня
(11.01.2010 в 16:32)
| | Влезает если без знака, а @ndry предлагает как раз наоборот: "в базе uns int, а нам нужно чтобы хранился int" | |
|
|
|
|
|
|
|
для: Саня
(11.01.2010 в 15:12)
| | Пусть делает, как считает нужным.
:) | |
|
|
|
|
|
|
|
для: Loki
(11.01.2010 в 16:23)
| | Влезает. Int в РНР 4-байтный (8-байтный на 64-битных платформах). | |
|
|
|
|
|
|
|
для: @ndry
(11.01.2010 в 15:42)
| | Может я чего не понимаю, но ip в int не влезает... | |
|
|
|
|
|
|
|
для: @ndry
(11.01.2010 в 15:42)
| | Ах вот оно что! Стоит ли нарушать совместимость со всеми существующими geoip базами ради сомнительной, ничем не подтверждённой, выгоды? Я считаю что нет. | |
|
|
|
|
|
|
|
для: Саня
(11.01.2010 в 15:38)
| | > преобразование int в unsigned int
Опечатка, наоборот, в базе uns int, а нам нужно чтобы хранился int
Может почитайте внимательно что я сказал выше?
У вас будет:
$num_ip = sprintf('%u', ip2long($ip));
У меня будет:
$num_ip = ip2long($ip); | |
|
|
|
|
|
|
|
для: @ndry
(11.01.2010 в 15:25)
| | > У человека есть база ... В ней хранятся адреса в форме unsigned int
> ...
> Я предлагаю провести операцию с базой ... преобразование int в unsigned int
No comments.
IP-адрес посетителя (не важно откуда получим, скорее всего из REMOTE_ADDR) всегда будет в формате xxx.xxx.xxx.xxx. Чтобы проще искалось нужно перевести его в uint и выполнить запрос.
Ещё раз, по пунктикам:
1. Получаем IP-адрес посетителя сайта
2. Полученный адрес переводим в uint
3. Производим поиск по базе, в которой все диапазоны записаны в uint
4. Получаем результат | |
|
|
|
|