Ich speichere IPv6-Adressen als varbinary
mit PHP-Funktion inet_pton($_SERVER['REMOTE_ADDR'])
. Wenn ich eine SQL-Abfrage ausführen, wie zum Beispiel:Wie lese ich die in Varbinary gespeicherte IPv6-Adresse in MySQL?
SELECT ip_address FROM some_table WHERE id='some_id';
würde ich nicht in der Lage sein, die ip-adresse zu lesen, weil es in einem binary
Format ist.
Ich stelle fest, dass es eine entsprechende MySQL-Funktion INET6_NTOA(expr)
in MySQL version 5.6 gibt, um es wieder in lesbares Format zurückzusetzen. Leider verwende ich MySQL Version 5.5, die diese Funktion nicht hat.
Gibt es eine andere Möglichkeit, die IPv6-Adressen zu lesen, ohne zurück zu PHP zu gehen, um die Konvertierung durchzuführen? Ich kann die hexadezimale Notation der binären Zeichenfolge mit dem Editor in der Workbench leicht ablesen, wie in der Abbildung gezeigt, daher dachte ich, es sollte eine einfache Möglichkeit geben, dies zu tun.
lesen Sie ähnlich: http://stackoverflow.com/questions/1873085/how-to-convert-from-varbinary-to-char-varchar-in-mysql – diEcho
siehe auch: http://stackoverflow.com/questions/973923/mysql-varbinary-vs-varchar und http://stackoverflow.com/questions/420680/how-to-store-ipv6-compatible-address-in-a-relational-database – diEcho
@diEcho, habe ich versucht ' cast 'und' convert', aber es hat nicht funktioniert. –