2016-07-08 14 views
3

Ich muss Ip in der Datenbank speichern. Ich benutze Laravel, aber ich muss IPv6 und IPv4 IPs speichern Ist der IP-Typ bereit für IP?Ist Laravel-Migration IP-Typ IPv6 bereit?

$table->ipAddress('visitor'); 

Oder brauche ich einen normalen String-Typ.

Dank

+0

In Postgres erzeugt es einen 'INET'-Spaltentyp, der für beide geeignet ist (die Dokumente (https://www.postgresql.org/docs/9.1/static/datatype-net-types.html)). Ich kann nicht mit MySQL sprechen. Sie können das selbst in ungefähr 30 Sekunden (wie ich) testen. – ceejayoz

+0

Ich war nur neugierig. Ich werde es jetzt testen. – KBeckers

Antwort

4

Die ipAddress() Methode erstellt die folgenden Feldtypen für die angegebenen Datenbanken:

  • MySql - VARCHAR (45)
  • SqlServer - nvarchar (45)
  • Postgres - inet
  • SqlLite - varchar

Für Textfelder beträgt die maximale Länge für die Speicherung von IPv6-Adressen 45 Zeichen. Es sieht daher so aus, als ob dies für MySql, SqlServer und SqlLite berücksichtigt wird. Außerdem behandelt das Feld inet in Postgres sowohl IPv4- als auch IPv6-Felder.

In Anbetracht all dies würde ich sagen, es ist sicher anzunehmen, dass die ipAddress() Methode ein Feld erstellen wird, das IPv6 in jeder Datenbank verarbeiten kann.