2012-04-06 7 views
2

私はIPv6アドレスをvarbinaryとしてPHPの機能inet_pton($_SERVER['REMOTE_ADDR'])で保存しています。私のようなSQLクエリを実行すると:MySQLでvarbinaryとして格納されているIPv6アドレスを読み取る方法は?

SELECT ip_address FROM some_table WHERE id='some_id'; 

私はそれがbinary形式であるためのip_addressを読み取ることができません。

私は、対応するMySQL関数INET6_NTOA(expr)MySQL version 5.6にあり、それを読み込み可能な形式に戻すことに気付きました。残念ながら、私はその機能を持たないMySQLバージョン5.5を使用しています。

変換を行うためにPHPに戻らなければIPv6アドレスを読み取ることができる他の方法はありますか?私は簡単にバイナリ文字列の16進表記をWorkbenchのエディタで読み取ることができますが、これは簡単な方法で行うべきだと思いました。

enter image description here

+0

同様の見出し:http://stackoverflow.com/questions/1873085/how-to-convert-from-varbinary-to-char-varchar-in-mysql – diEcho

+0

他を見る:http://stackoverflow.com/questions/973923/mysql-varbinary-vs-varcharおよびhttp://stackoverflow.com/questions/420680/how-to-store-ipv6-compatible-address-in-a-relational-database – diEcho

+0

@diEcho、私は 'キャストとコンバートは動作しませんでした。有用なリンクのための –

答えて

3

あなたはあなたのための変換を行うために、ユーザー定義関数を作成し、select句でそれらを呼び出すことができます。詳細については、thisリンクを参照してください。

+0

+1 – diEcho

+0

ありがとうリンク。 MySQLワークベンチの "エディタでのopen value"で表示される16進表記法を読み込む方法はありますか? –

+0

UNHEX機能はおそらくです。 –

関連する問題