|
|
|
| В каком виде и какой тип поля использовать ...наиболее оптимальный вариант??? | |
|
|
|
|
|
|
|
для: serjinio
(09.01.2009 в 15:06)
| | В поле типа unsigned int. Функция преобразования inet_aton(). Обратное преобразование inet_ntoa(). | |
|
|
|
|
|
|
|
для: Саня
(09.01.2009 в 15:30)
| | Спасибо запустил все ок...
Для общего развития....
Оптимально хранить ip-адреса не как строки (varchar), а как числа. Для этого существует две функции mySQL — INET_ATON и INET_NTOA, первая преобразует 4 байтную последовательность ip-адреса в число, вторая преобразует обратно.
1. Столбец, в котором будут хранится ip-адреса объявляется как `ip` INT UNSIGNED NOT NULL
2. При вставке:
INSERT INTO `ip_s`
SET ip = INET_ATON('213.169.23.35')
|
3. При выборке (например > 255.255.0.0)
SELECT INET_NTOA(ip)
FROM `ip_s`
WHERE `ip_s`.ip > INET_ATON('255.255.0.0')
|
По полю ip делаем индекс.... | |
|
|
|
|
|
|
|
для: serjinio
(09.01.2009 в 17:04)
| | А сколько же знаков для столбца IP указывать INT(??) UNSIGNED NOT NULL ? | |
|
|
|
|
|
|
|
для: pojar
(17.01.2009 в 12:00)
| | Смотря что хранить .....
` ip`int(10) unsigned NOT NULL default '0',
или bigint(10) | |
|
|
|
|
|
|
|
для: pojar
(17.01.2009 в 12:00)
| | Просто напишите `ip` INT UNSIGNED и всё. | |
|
|
|
|
|
|
|
для: serjinio
(09.01.2009 в 17:04)
| | К сожалению функции inet_ntop(), inet_pton() доступны только в РНР5 | |
|
|
|
|
|
|
|
для: mihdan
(17.01.2009 в 14:20)
| | Бред. Эти функции вообще в php недоступны. | |
|
|
|
|
|
|
|
для: Loki
(17.01.2009 в 23:15)
| | Спутал с inet_ntop(), inet_pton() которые есть в РНР и доступны с пятой версии. | |
|
|
|
|
|
|
|
для: mihdan
(18.01.2009 в 23:45)
| | Странно, когда Вам отвечал Loki, то в Вашем сообщении никаких inet_ntop(), inet_pton() не было. | |
|
|
|
|
|
|
|
для: BinLaden
(19.01.2009 в 15:34)
| | На форуме есть скрытая функция редактирование постов, на которые уже ответили. Об этой функции знают только старички =) | |
|
|
|
|
|
|
|
для: Саня
(20.01.2009 в 10:20)
| | На самом деле я это прекрасно знаю. Я лишь хотел выразить недоумение тем, что mihdan правит посты после ответа на них. Причём так, что отвечающий оказывается в неловкой ситуации: якобы плохо смотрел. | |
|
|
|
|
|
|
|
для: BinLaden
(20.01.2009 в 10:53)
| | Поэтому, когда комментируешь чей-то пост, и нет уверенности в "моральном уровне" автора поста, нелишним будет горячую строку процитировать. А если такая уверенность есть - процитировать с указанием даты-времени написания. :) | |
|
|
|
|
|
|
|
для: Trianon
(20.01.2009 в 11:36)
| | Да, знаю такой хитрый прием. | |
|
|
|
|
|
|
|
для: mihdan
(18.01.2009 в 23:45)
| | В PHP всегда были функции ip2long() и long2ip(). Отличаются от inet_ntop(), inet_pton() тем, что преобразуют только IPv4. | |
|
|
|
|
|
|
|
для: mihdan
(17.01.2009 в 14:20)
| | Вообще-то это MySql | |
|
|
|
|
|
|
|
для: serjinio
(09.01.2009 в 17:04)
| | Вопрос:
Как обновить текущую таблицу поле IP (типа INT), если там было поле IP типа VARCHAR.
Скриптом знаю можно, но если без скрипта можно или нет средствами MySQL? | |
|
|
|
|
|
|
|
для: HaJIuBauKa
(19.01.2009 в 13:56)
| | Очевидно создать новое поле типа INT и преобразовать туда строковые значения
UPDATE ip_table SET int_field = INET_ATON(ip)
|
а потом снести поле ip и переименовать int_field в ip | |
|
|
|