1. 将整数转换成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)
26 a=intToIp(123456789)
27 print a

方法二:
 1 #!usr/bin/python
2 #encoding=utf-8
3 def inttoip(num):
4 s = bin(num)[2:]
5 s = s.zfill(32)
6 g = []
7 h = []
8 for i in xrange(0,32,8):
9 g.append(s[i:i+8])
10 for temp in g:
11 h.append(str(int(temp,2)))
12 e = ".".join(h)
13 print e
14
15 inttoip(123456789)

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

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

#!usr/bin/python
2 #encoding=utf-8
3 #将IP地址转换为数值字符串,如7.91.205.21转换后为“123456789”
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内置函数
1 #!usr/bin/python
2 #encoding=utf-8
3 def iptoint(num):
4 h=[]
5 s = num.split(".")
6 for temp in s:
7 a = bin(int(temp))[2:]
8 a = a.zfill(8)
9 h.append(a)
10 g = "".join(h)
11 e = int(g,2)
12 print e
13
14 iptoint('7.91.205.21')

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

Python—IP地址与整数之间的转换的更多相关文章

  1. C# IP地址与整数之间的转换

    IP地址与整数之间的转换 1.IP地址转换为整数 原理:IP地址每段可以看成是8位无符号整数即0-255,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个无符号的32位整数. 举例:一 ...

  2. IP地址字符串与BigInteger的转换

    /**  * Copyright (c) 2010, 新浪网支付中心  *      All rights reserved.  *  * Java IP地址字符串与BigInteger的转换,  * ...

  3. Java IP地址字符串与BigInteger的转换, 支持IPv6

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  4. python IP地址转16进制

    python IP地址转16进制 第一种方法: 通过socket.inet_aton实现 import socket from binascii import hexlify ary='192.168 ...

  5. ip地址与整数相互转换

    一.将ip地址转成long数值 将IP地址转化成整数的方法如下: 1.通过String的split方法按.分隔得到4个长度的数组 2.通过左移位操作(<<)给每一段的数字加权,第一段的权为 ...

  6. python中unicode, hex, bin之间的转换

    python中unicode, hex, bin之间的转换 背景 在smb中有个feature change notify, 需要改动文件权限dacl,然后确认是否有收到notify.一直得不到这个d ...

  7. 转:Python常见字符编码及其之间的转换

    参考:Python常见字符编码 + Python常见字符编码间的转换 一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Cod ...

  8. python模块--ip地址转换为整数

    python整数与IP地址转换 [转] 我们有时会将一个整数与IP地址进行互换,用python代码实现很简单 将一个整数如2000000,变为一个IP地址的方式 >>> import ...

  9. ip(点分十进制 <==> 二进制整数)之间的转换

    linux的套接字部分比较容易混乱,在这里稍微总结一下. 地址转换函数在地址的文本表达式和它们存放在套接字地址结构中的二进制值进行转换. 地址转换函数有四个:其中inet_addr 和 inet_nt ...

随机推荐

  1. Bootstrap Bootstrap3 与 Bootstrap4 的区别

    Bootstrap3 与 Bootstrap4 官网地址 Bootstrap3 官网:https://v3.bootcss.com Bootstrap4 官网:https://v4.bootcss.c ...

  2. 6.5 scp:远程文件复制

    scp命令 用于在不同的主机之间复制文件,它采用SSH协议来保证复制的安全性.scp命令每次都是全量完整复制,因此效率不高,适合第一次复制时使用,增量复制建议使用rsync命令替代.     scp ...

  3. 『动善时』JMeter基础 — 27、通过JMeter函数助手实现参数化

    目录 1.测试计划中的元件 2.数据文件内容 3.函数助手配置 (1)函数助手的打开方式 (2)函数助手界面介绍 (3)编辑后的函数助手界面 4.HTTP请求组件内容 5.线程组元件内容 6.脚本运行 ...

  4. HiCar技术概述

    HiCar技术概述 HUAWEI HiCar(以下简称 HiCar)是华为提供的人-车-家全场景智慧互联(HUAWEI HiCar Smart Connection)解决方案,具备如下特点: 安全交互 ...

  5. 视频系列:RTX实时射线追踪(下)

    视频系列:RTX实时射线追踪(下) Key things from part 4 光线有效载荷是从一个着色器传递到另一个着色器的结构. 这一切都发生在RTX的引擎下. 更小的有效载荷要好得多! 新的D ...

  6. python赋值,深拷贝和浅拷贝的区别

    1.赋值 list1=[[1,2],'fei',66] list2=list1 list1 [[1, 2], 'fei', 66] list2 [[1, 2], 'fei', 66] list2.ap ...

  7. 九、配置Tomcat集群

    配置Tomcat集群所需服务器三台:192.168.1.5(调度服务器).192.168.1.10(WEB1),192.168.1.20(WEB2) 1.调度服务器设置 [root@proxy ~]# ...

  8. 四、缓存DNS

    作用:缓存解析结果,提高解析速度 搭建方式: 1.全局转发,所有的DNS解析请求全部转发给公网DNS 2.根域迭代,所有的DNS解析请求全部发给根域DNS服务器 真机上实现缓存DNS服务器 1.搭建Y ...

  9. Java线程的并发工具类

    Java线程的并发工具类. 一.fork/join 1. Fork-Join原理 在必要的情况下,将一个大任务,拆分(fork)成若干个小任务,然后再将一个个小任务的结果进行汇总(join). 适用场 ...

  10. 02:database 配置(可能出现严格模式配置问题)

    DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'day42', 'USER': 'root', 'P ...