Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как правильно хранить и сравнивать? Список IP-адресов 
:(
    Опции темы
Рейкин
Дата 20.12.2005, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 23.11.2003
Где: Баку, Азербайджан

Репутация: 1
Всего: 1



Здравствуйте,

Надеюсь поможете добрым советом smile

Создаю базу (таблицу в MySQL) c IP-адресами. Если IP новый, то записывается. Если такой уже есть, то не записывает. Раз в сутки таблица опустошается и всё сначала.

Вопрос: как организовать алгоритм, чтобы не очень тормозил? В идеале IP-шек может быть до 12000 (географический таргетинг)

Спасибо.
PM WWW   Вверх
Dave
Дата 20.12.2005, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 17.6.2004

Репутация: -1
Всего: 1



а нынешний алгоритм сильно тормозит ?
У тебя айпишники приходят раз в сутки все в месте или постепенно ?
PM MAIL   Вверх
Bose
Дата 20.12.2005, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: нет
Всего: 51



обычно ip адреса хранят в виде long integer.
PM MAIL WWW Skype   Вверх
Bi0
Дата 20.12.2005, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 24.11.2005

Репутация: нет
Всего: нет



Цитата(Bose @ 20.12.2005, 19:21)
обычно ip адреса хранят в виде long integer.

а как же точки ? smile Или я чего-то недопонимаю smile
PM MAIL   Вверх
Mal Hack
Дата 20.12.2005, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Bi0 @ 20.12.2005, 19:34)
а как же точки ? smile Или я чего-то недопонимаю smile

Переводим IP в число и не паримся smile ip2long(); на что? smile
PM ICQ   Вверх
Рейкин
Дата 20.12.2005, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 23.11.2003
Где: Баку, Азербайджан

Репутация: 1
Всего: 1



Цитата(Mal @ 20.12.2005, 21:03)
Переводим IP в число и не паримся smile ip2long(); на что? smile

Счас гляну что такое - похоже на классную вещь smile

Цитата(Dave @ 20.12.2005, 19:02)
а нынешний алгоритм сильно тормозит ?
У тебя айпишники приходят раз в сутки все в месте или постепенно ?

Я сначала за советом - ещё не писАл.
Будут приходить не сразу, не скопом.


А как хранить в базе? Построчно?
ID IP
1 1.1.1.1
2. 1.3.4.2
........

Или есть более быстрый способ для последующего чтения и сравнения?

Спасибо

Это сообщение отредактировал(а) Рейкин - 20.12.2005, 22:54
PM WWW   Вверх
Mal Hack
Дата 20.12.2005, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



При чем тут построчно?
Хранить как число.
PM ICQ   Вверх
Gold Dragon
Дата 21.12.2005, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Цитата(Mal @ 20.12.2005, 23:01)
Хранить как число.

Если честно, не понял как числом хранить... Допустим есть адреса 195.122.193.5 и 195.122.19.35. Ну и как определить тогда какой из них какой если число получится 1951221935?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Рейкин
Дата 21.12.2005, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 23.11.2003
Где: Баку, Азербайджан

Репутация: 1
Всего: 1



Цитата(Mal @ 20.12.2005, 23:01)
При чем тут построчно?
Хранить как число.

Я имею ввиду - как хранить в базе как число? Добавлять каждый раз строку в таблицу, задавая каждому числу два поля: само число и его ID. ID для того, чтобы перечитывать от и до при сравнении, конечно.


Цитата(Red @ 21.12.2005, 08:53)
Если честно, не понял как числом хранить... Допустим есть адреса 195.122.193.5 и 195.122.19.35. Ну и как определить тогда какой из них какой если число получится 1951221935?

Кажись там вообще не в такой. Пример:
ip2long("125.125.125.125") = 2105376125
А бывает вообще отрицательный (для других IP, конечно)...

Это сообщение отредактировал(а) Рейкин - 21.12.2005, 09:47
PM WWW   Вверх
Хоббит
Дата 21.12.2005, 10:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

Репутация: 1
Всего: 1



.... да .. наверно люди сильно не знают информатику. .... есть такое понятие системы счисления .... вот ip адресс можно сказать записан в 255 ричной системе счисления .. а тебе надо перевести в 10 (нашу) систему. Сделать это можно так
ip = a.b.c.d = a * 255^3 + b * 255^2 + с * 255 + d // где ^ степень.
Обратный алгоритм примерно идиентичный, только надо будет делить на 255 и брать остатки.
( в принципе тебе это нафик не надо, т.к. есть стандартные функции перевода.
P.S. Отрицательные числа появляются из-за формата записи отрицательных чисел, т.к. для как в битном представлении у целых чисел 1 бит означает знак 0 плюс 1 минус, остальные означают число (причем у отрицательных чисел еще все биты инвертированы) Но это тоже не надо.
На счет хранения посторочно ??? .. не понятно ... просто для каждого IP новая строка в БД и все!
PM MAIL   Вверх
Рейкин
Дата 21.12.2005, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 23.11.2003
Где: Баку, Азербайджан

Репутация: 1
Всего: 1



Хоббит - оппа, всё ясно объяснил, спасибо. Насчёт хранения - это и говорю.

Вопрос. Раз в сутки хочу стирать базу IP, начиная с нуля. Собираюсь просто удалять таблицу и создавать её заново. Это корректный подход?
PM WWW   Вверх
R.M.
Дата 22.12.2005, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Анархист
****


Профиль
Группа: Участник
Сообщений: 2164
Регистрация: 8.6.2005
Где: Питер

Репутация: -2
Всего: 30



Рейкин
Цитата
Собираюсь просто удалять таблицу и создавать её заново. Это корректный подход?

Нет, можно её отчищать, непомню команду мускула, загляни в phpmyadmin или в учебник


--------------------
Помнишь как бодрили дискотеки прошлого века? Теперь стул, компьютер и нету человека.

Nokia LifeStyle - Всё для смартфонов Nokia 
PM MAIL WWW ICQ   Вверх
mr.fox
Дата 22.12.2005, 03:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 298
Регистрация: 13.3.2005
Где: Ирландия

Репутация: -1
Всего: 2



Рейкин truncate `table`
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 22.12.2005, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



а случайно не так?
Код

TRUNCATE TABLE table_name



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
R.M.
Дата 22.12.2005, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Анархист
****


Профиль
Группа: Участник
Сообщений: 2164
Регистрация: 8.6.2005
Где: Питер

Репутация: -2
Всего: 30



Red Dragon
Цитата(Red @ 22.12.2005, 09:54)
а случайно не так?

именно так


--------------------
Помнишь как бодрили дискотеки прошлого века? Теперь стул, компьютер и нету человека.

Nokia LifeStyle - Всё для смартфонов Nokia 
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0603 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.