码迷,mamicode.com
首页 > 编程语言 > 详细

Python—IP地址与整数之间的转换

时间:2018-06-20 21:18:06      阅读:478      评论:0      收藏:0      [点我收藏+]

标签:bubuko   style   字符串   pen   字符   初学   学python   换算   append   

1. 将整数转换成IP:

思路:将IP地址转换成无符号32位的二进制,再8位进行分割,每8位转换成十进制即可。

#!usr/bin/python
  2 #encoding=utf-8
  3 #1. 将整数转换成32位无符号二进制
  4 def intToIp(num):
  5         s = []
  6         g = []
  7         h = []
  8         for i in range(32):
  9                 a = num%2
 10                 s.insert(0,a)
 11                 num = num/2
 12         print s
 13 #2. 每8位进行分割,将4个8位二进制转换成十进制,加.连接即可。
 14         for i in xrange(0,32,8):
 15                 g.append(s[i:i+8])
 16         print g  
 17         for temp in g:
 18                 sum = 0
 19                 j = 0
 20                 for temp2 in temp:
 21                         sum = sum + temp2*(2**(7-j))
 22                         j += 1
 23                 print sum 
 24                 h.append(str(sum))
 25         return ..join(h[::1])
 26 a=intToIp(123456789)
 27 print a

技术分享图片

2. 将IP地址转换成整数:

思路:将IP的四位分别转换成8位二进制,去"."后整合,再换算成十进制。

#!usr/bin/python
  2 #encoding=utf-8
  3 #将IP地址转换为数值字符串,如7.91.205.21转换后为“123456789”
  4 #1.按.分割,2. 分割后的第一位乘以256**4,第二位乘以256**3,第三位乘以256**2,第四位乘以256,结果相加
  5 def IpToInt(num):
  6 #1.将IP地址转换成32位的二进制。
  7         s = num.split(.)
  8         h = []
  9         g = []
 10         for temp in s:
 11                 while(temp!=0):
 12                         temp = int (temp)
 13                         a = temp % 2
 14                         h.insert(0,a)
 15                         temp = temp/2
 16                 if len(h)!= 8:
 17                         for i in range(8-len(h)):
 18                                 h.insert(0,0)
 19                 g.extend(h)
 20                 h = []
 21 #       print g
 22 #2. 将二进制换算成整数:
 23         sum = 0
 24         j = 0
 25         for temp2 in g:
 26                 sum = sum + temp2*(2**(31-j))
 27                 j += 1
 28         print sum
 29 IpToInt("7.91.205.21")

技术分享图片

注:初学python,代码有点low,请见谅!

 

Python—IP地址与整数之间的转换

标签:bubuko   style   字符串   pen   字符   初学   学python   换算   append   

原文地址:https://www.cnblogs.com/pengpp/p/9205296.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!