我最近开始用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