Я хочу сохранить IP-адрес пользователя в моей базе данных, если возникнут какие-либо юридические проблемы, и нам нужно выяснить, кто выполнил какое действие. Поскольку я очень сомневаюсь, что я буду когда-либо действительно должен использовать эти данные (ну, может быть, для подсчета уникальных хитов или чего-то еще), вы думаете, я могу просто сбросить REMOTE_ADDR
в поле? Если да, то какова должна быть длина этого поля? 39 символов должны соответствовать IPv6-адресу, нет? Я не знаю, смогу ли я когда-либо получить их, но на всякий случай ...Сохранение IP-адреса в DB
ответ
Если вы используете Postgres, есть конкретные data types for network addresses.
В SQL Server мы использовали VARBINARY [16] для IP-адресов для IPv4 (4 байта) и IPv6 (16 байтов).
Но в вашем случае, если это просто случайный обзор вручную, а не для обработки машины, просто сохраните строку. (И да, 39 символов будут максимальными.)
Магазин полное и недвусмысленное представление данных. Когда вам нужно запросить данные, и когда вы выясните, какой тип запроса необходим для данных, то есть, когда вы выясните, как преобразовать данные, чтобы вы могли быстро его запросить.
Если вы сохраняете IP-адрес, скажем, первого посещения пользователя в любом сеансе пользователя, вы можете рассмотреть возможность обратного DNS-поиска по IP-адресу. Это даст информацию об интернет-провайдере пользователя. В случае возникновения юридических вопросов, теперь у вас есть дополнительная информация. Но поскольку эти поисковые запросы являются дорогостоящими (с точки зрения времени), вы можете сделать это в качестве фоновой задачи и, возможно, захотите сделать это только для начальных обращений, а не последующих ударов с одного и того же IP-адреса в любом данном сеансе пользователя.
Самый эффективный способ хранения IP-адресов в поле БД - преобразование их в целое число вместо использования строки.
CREATE TABLE `table` (
...
`ip` int(10) unsigned NOT NULL,
...
Как вы упоминаете REMOTE_ADDR Я предполагаю, что вы будете использовать PHP. Вы можете преобразовать IP в Адресных подходящее значение с помощью ip2long()
sprintf('%u',ip2long($_SERVER['REMOTE_ADDR']))
Чтобы преобразовать обратно в IP сгружено из БДА можно использовать long2ip()
- 1. сохранение изменений в db
- 2. Сохранение изображений в db
- 3. Сохранение содержимого файла в DB
- 4. Сохранение файла db в android
- 5. Сохранение данных JSON в db
- 6. сохранение данных маркера в db
- 7. Сохранение данных в eXist-db
- 8. Сохранение данных в db yii2
- 9. Сохранение значений без DB
- 10. Сохранение настроек внутри DB
- 11. Сохранение файла в asp.net и сохранение информации в DB
- 12. Сохранение данных JSON в DB в Zotonic
- 13. Сохранение сеанса связи с DB
- 14. MySQL DB - сохранение специального символа ★
- 15. Сохранение изображений в DB MySQL и сохранение его как файла
- 16. Правильное сохранение нестандартных символов в db
- 17. Сохранение связи DB в распределенной транзакции
- 18. Rails: Сохранение значений из модели в DB
- 19. MVC 3 Сохранение состояния флажка в db
- 20. Сохранение изображения (base64) в s3, чем db
- 21. Сохранение входов в db после автоматической суммы
- 22. Сохранение объекта модели в SQL DB
- 23. Сохранение данных в db с разбиением сущностей
- 24. node.js multer сохранение имени файла в db
- 25. Сохранение данных в формате .db - java.io.File
- 26. Сохранение элементов перетаскивания HTML5 в db
- 27. Сохранение данных в DB s считается сериализацией?
- 28. Временное сохранение пароля в db ASP.NET Core
- 29. Плоская загрузка файла и сохранение в DB
- 30. Сохранение набора изображений в MySql DB
Ох ... не думает, что искать такой тип данных. Могу также использовать это! – mpen