2013-08-16 26 views

回答

1

從數據庫中獲取十進制值並在Python代碼中進行轉換。安裝IPy模塊並執行以下操作:

from IPy import IP 
ip_dotted = str(IP(ip_dec)) 

如果您在使用Python 3.3,有ipaddress在STDLIB:

from ipaddress import ip_address 
ip_dotted = str(ip_address(ip_dec)) 

如果RDBMS中的使用是PostgreSQL的,轉化可以在數據庫級別上進行:

from sqlalchemy.sql import cast, func 
from sqlalchemy.dialects.postgresql import INET 

session.query(func.host(cast('0.0.0.0', INET) + SomeTable.ip_dec)).scalar() 

最後,你可以自己做計算的,所以不會有具體的圖書館,Python版本或RDBMS任何依賴關係:

segments = [] 
# From 3 to 0. 
for n in range(3, -1, -1): 
    p = 256 ** n 
    segments.append(str(ip_dec // p)) 
    ip_dec %= p 
ip_dotted = '.'.join(segments)