2016-07-08 1 views
3

Мне нужно сохранить Ip в базе данных. Я использую laravel, но мне нужно хранить IPv6 и IPv4 ip's Является ли тип ip готовым для IP?Является ли Laravel миграции ip типа ipv6 готовым?

$table->ipAddress('visitor'); 

Или мне нужно использовать обычный тип строки.

Благодаря

+0

В Postgres он создает тип столбца «INET», который [docs] (https://www.postgresql.org/docs/9.1/static/datatype-net-types.html) подходит для обоих. Я не могу говорить с MySQL. Вы можете проверить это самостоятельно примерно за 30 секунд (как и я). – ceejayoz

+0

Мне было просто любопытно. Собираюсь проверить это сейчас. – KBeckers

ответ

4

ipAddress() метод создает следующие типы полей для указанных баз данных:

  • MySql - VARCHAR (45)
  • SqlServer - NVARCHAR (45)
  • Postgres - инет
  • SqlLite - varchar

Для текстовых полей максимальная длина, необходимая для хранения адресов IPv6, составляет 45 символов, поэтому это выглядит так, как это учитывается для MySql, SqlServer и SqlLite. Кроме того, поле inet в Postgres обрабатывает поля IPv4 и IPv6.

Учитывая все это, я бы сказал, что безопасно предположить, что метод ipAddress() создаст поле, которое может обрабатывать IPv6 в любой базе данных.

Смежные вопросы