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. 思考一个问题STM32的

    如果一个定时中断刚刚进入中断服务函数 但是服务函数执行时间太长   又一次触发了中断 会怎样

  2. 针对spring mvc的controller内存马-学习和实验

    1 基础 实际上java内存马的注入已经有很多方式了,这里在学习中动手研究并写了一款spring mvc应用的内存马.一般来说实现无文件落地的java内存马注入,通常是利用反序列化漏洞,所以动手写了一 ...

  3. fragment之间相互传数据、共享数据

    在 Fragment 之间共享数据 Activity 中的两个或更多 Fragment 需要相互通信是一种很常见的现象.想象一下拆分视图 (master-detail) Fragment 的常见情况, ...

  4. Django中的中英文切换

    setting.py文件中 其中 zh-Hans是简体中文 zh-Hant是繁体中文 所以更改setttings.py 下 LANGUAGE_CODE = 'zh-Hans'即可 # 英文 LANGU ...

  5. celery 简单示例

    目录结构 第一步  celery_task 里面的celery文件 import time from celery import Celery # celery from celery.schedul ...

  6. 深度学*点云语义分割:CVPR2019论文阅读

    深度学*点云语义分割:CVPR2019论文阅读 Point Cloud Oversegmentation with Graph-Structured Deep Metric Learning 摘要 本 ...

  7. 共享CUDA内存

    共享CUDA内存 进程间共享 此功能仅限于Linux. 将设备阵列导出到另一个进程 使用CUDA IPC API,可以与同一台计算机上的另一个进程共享设备阵列.为此,请使用.get_ipc_handl ...

  8. Python API vs C++ API of TensorRT

    Python API vs C++ API of TensorRT 本质上,C++ API和Python API应该在支持您的需求方面接近相同.pythonapi的主要优点是数据预处理和后处理都很容易 ...

  9. 英特尔内存革新助平安云 Redis 云服务降本增效

    英特尔内存革新助平安云 Redis 云服务降本增效 英特尔 傲腾 数据中心级持久内存的引入,为平安云的降本增效开启了一条新的道路.通过对平安云 Redis 数据库产品的支持,用户能享受到性能优异且价格 ...

  10. MEMS传感器作为变革的驱动力

    MEMS sensors as drivers for change 物联网(IoT)正在改变与周围世界互动的方式.每个人,每件事,都是相互联系的,很快就会相互联系.微机电系统(MEMS)设备和传感器 ...