r0g wrote:
def inet2ip(n): p = (n/16777216) q = ((n-(p*16777216))/65536) r = ((n-((p*16777216)+(q*65536)))/256) s = ((n-((p*16777216)+(q*65536)+(r*256)))) return str(p)+"."+str(q)+"."+str(r)+"."+str(s)
Beyond what other wrote: To future-proof code, use // instead of / for integer division. To get both quotient and remainder, use divmod(num,den) For future reading (and generalization) documenting magic constants helps. In 3.0: def inet2ip(n): p = (n//16777216) q = ((n-(p*16777216))//65536) r = ((n-((p*16777216)+(q*65536)))//256) s = ((n-((p*16777216)+(q*65536)+(r*256)))) return str(p)+"."+str(q)+"."+str(r)+"."+str(s) def inet2ip2(n): p,n=divmod(n,16777216) # 1<<24 q,n=divmod(n,65536) # 1<<16 r,s=divmod(n,256) # 1<<8 return str(p)+"."+str(q)+"."+str(r)+"."+str(s) print(inet2ip(1000000000), inet2ip2(1000000000)) >>> 59.154.202.0 59.154.202.0 -- http://mail.python.org/mailman/listinfo/python-list