我最近開始用python編程,我在理解inet_nota
和inet_aton
如何在Python中工作時遇到一些麻煩。來自php/mysql我總是將IP地址作爲長變量存儲在數據庫中。另外mysql中的inet_ntoa
方法接收一個長變量作爲參數,並返回一個IP的點狀格式,所以我假設Python版本以類似的方式工作。但是,Python的inet_ntoa
似乎需要32位打包二進制格式。所以,如果將IP地址存儲爲167772160
的值,那麼我怎樣才能將其轉換爲32位打包二進制值(如\x7f\x00\x00\x01
),這是inet_ntoa
方法所需要的?在Python中使用inet_ntoa函數
非常感謝
我爲我的項目使用睡衣,我得到:「raise StructError」,對於我,I,L,Q,Q,H,H的參數必須是整數「。我嘗試了幾種組合但似乎沒有任何工作,是否有任何解決方法呢? – tibi3384 2011-03-08 13:53:31
@ tibi3384這可能是因爲你有一個數字的字符串,將它包裝在'int'中,就像這樣:'struct.pack('!I',int(string_ip_number_variable )''。 – phihag 2011-03-08 14:08:29
該死的,你說得對,應該已經發現了!完美的工作。猜猜我仍然習慣於自動執行演員表的PHP。)乾杯 – tibi3384 2011-03-08 14:22:01