Python—IP地址与整数之间的转换
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地址与整数之间的转换的更多相关文章
- C# IP地址与整数之间的转换
IP地址与整数之间的转换 1.IP地址转换为整数 原理:IP地址每段可以看成是8位无符号整数即0-255,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个无符号的32位整数. 举例:一 ...
- IP地址字符串与BigInteger的转换
/** * Copyright (c) 2010, 新浪网支付中心 * All rights reserved. * * Java IP地址字符串与BigInteger的转换, * ...
- 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 ...
- python IP地址转16进制
python IP地址转16进制 第一种方法: 通过socket.inet_aton实现 import socket from binascii import hexlify ary='192.168 ...
- ip地址与整数相互转换
一.将ip地址转成long数值 将IP地址转化成整数的方法如下: 1.通过String的split方法按.分隔得到4个长度的数组 2.通过左移位操作(<<)给每一段的数字加权,第一段的权为 ...
- python中unicode, hex, bin之间的转换
python中unicode, hex, bin之间的转换 背景 在smb中有个feature change notify, 需要改动文件权限dacl,然后确认是否有收到notify.一直得不到这个d ...
- 转:Python常见字符编码及其之间的转换
参考:Python常见字符编码 + Python常见字符编码间的转换 一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Cod ...
- python模块--ip地址转换为整数
python整数与IP地址转换 [转] 我们有时会将一个整数与IP地址进行互换,用python代码实现很简单 将一个整数如2000000,变为一个IP地址的方式 >>> import ...
- ip(点分十进制 <==> 二进制整数)之间的转换
linux的套接字部分比较容易混乱,在这里稍微总结一下. 地址转换函数在地址的文本表达式和它们存放在套接字地址结构中的二进制值进行转换. 地址转换函数有四个:其中inet_addr 和 inet_nt ...
随机推荐
- BXL文件怎样转换为AD LIB文件
https://jingyan.baidu.com/article/48b558e326e1b17f39c09a57.html
- 防火墙 firewall iptables
firewalld FirewallD 使用服务service 和区域zone来代替 iptables 的规则rule和链chain,默认情况下,有以下的区域zone可用: drop – 丢弃所有传入 ...
- 物联网设备OTA软件升级之:升级包下载过程之旅
OTA概述 大家好,我是一个软件升级包.这几天呢,我将会进行一次神奇的网络之旅,从开发者的电脑中,一直跑到终端嵌入式设备中. 大家都把我的这个旅游过程叫做 OTA,也就是在线升级. 那么啥叫 OTA ...
- Ajax|看这一篇就够了!详解Ajax工作原理及开发步骤
传统开发的缺点,是对于浏览器的页面,全部都是全局刷新的体验.如果我们只是想取得或是更新页面中的部分信息那么就必须要应用到局部刷新的技术. 局部刷新也是有效提升用户体验的一种非常重要的方式. Ajax技 ...
- HarmonyOS系统概述
HarmonyOS系统概述 系统定位 HarmonyOS是一款"面向未来".面向全场景(移动办公.运动健康.社交通信.媒体娱乐等)的分布式操作系统.在传统的单设备系统能力的基础上, ...
- KITTI数据集上MaskRCNN检测效果示例
KITTI数据集上MaskRCNN检测效果示例 在Semantic Instance Segmentation Evaluation中,MaskRCNN性能效果排名第一. Test Image 0 I ...
- win10下安装jmeter
http://note.youdao.com/noteshare?id=49a31ed75e139e03055bb6fc79342ac2&sub=EFA14CDD037C4EA4BE2A42B ...
- dataguard日志损坏处理
===== 问题 ===== 日志损坏无法应用日志(开启MRP应用系统会因无法应用日志而关闭) Completed: ALTER DATABASE RECOVER MANAGED STANDBY DA ...
- WizTree——一个扫描快似Everything的硬盘空间分析工具
虽然我平时用的主要是Linux,但是由于实际环境是win10,对于磁盘资源的控制,我主要是通过Windows自带的文件资源管理器来查看的,但是显然这个工具不够直观.于是,我也被安利过SpaceSnif ...
- HTML基本标签及语法
HTML简介 什么是HTML 本文素材来源于黑马程序员Pink老师 HTML 指的是超文本标记语言(Hyper Text Markup Language) ,它是用来描述网页的一种语言. HTML 不 ...