2014-02-20 60 views
0

我們已將IP地址存儲爲Vertica數據庫中的二進制文件。如何將它們轉換爲xxx.xxx.xxx.xxx之類的IP地址以顯示在SSRS報告中?如何將二進制數據類型轉換爲IP字符串

+0

你能告訴我們IP是如何存儲的嗎? IPv4,IPv6包含小數等...有關更多信息,請參閱[二進制數據類型](https://my.vertica.com/docs/6.1.x/HTML/index.htm#11033.htm)。如果您使用的是IPv6地址,Vertica內置了用於轉換爲二進制的函數:[V6_ATON](https://my.vertica.com/docs/6.1.x/HTML/index.htm#11377_1.htm) &[V6_NTOA](https://my.vertica.com/docs/6.1.x/HTML/index.htm#11378_1.htm) – Kermit

+0

謝謝FreshPrinceOfS。 – lazybones

回答

0

我不知道是否有一個「官方批准」的方法,如果沒有其他人建議,我想你會找一個黑客。如果是這樣,嘗試提取一個二進制IP地址,並通過一個十六進制轉發器傳遞它,併發布你得到的,如果可能的話還有相應的IP地址。

爲十六進制轉儲的Unix工具是OD,使用這樣的:

od -x somefile 

echo something | od -x 
0

在您的文章的面具暗示你有IPv4地址。因此,一個簡單的例子是(按順序假設網絡):

SELECT INET_NTOA(HEX_TO_INTEGER(TO_HEX(HEX_TO_BINARY('a0b0c0d0')))); 

哪裏HEX_TO_BINARY('a0b0c0d0')僅僅是爲示範的緣故。

對於IPv6,Kermit在他的評論中建議使用V6_NTOA。

相關問題