例子:IP:192.168.1.10

方法一:

In [1]: bin(192)
Out[1]: '0b11000000'

In [2]: bin(168)
Out[2]: '0b10101000'

In [4]: bin(1)
Out[4]: '0b1'

In [5]: bin(10)
Out[5]: '0b1010'

所以192.168.1.10 转换成整数:3232235786

In [6]: 0b11000000101010000000000100001010
Out[6]: 3232235786

方法二:

In [7]: 192*256**3+168*256**2+1*256**1+10*256**0
Out[7]: 3232235786

##########实战代码####################

[root@master script]# cat ip.py
#!/usr/bin/python
# coding:utf-8 def ip2int():
ip = raw_input('请输入需要转换成数字的IP(例如:192.168.1.10): ')
ip_list = ip.strip().split('.')
ip_int = int(ip_list[0])*256**3+int(ip_list[1])*256**2+int(ip_list[2])*256**1+int(ip_list[3])*256**0
return ip_int #def int2ip(num):
# iplist = []
# for n in range(4):
# num,mod = divmod(num,256)
# iplist.append(str(mod))
# rip = iplist[::-1]
# rip_num = '.'.join(rip)
# return rip_num def int2ip():
num = int(raw_input('请输入需要转换成IP的整数: '))
iplist = []
for n in range(4):
num,mod = divmod(num,256)
iplist.insert(0,str(mod))
return '.'.join(iplist) def show_menu():
CMDs = {'':ip2int,'':int2ip}
while True:
prompt = """\033[31;1m(1)ip转换成数字\033[0m
\033[32;1m(2)数字转换成IP\033[0m
\033[33;1m(3)退出(q)\033[0m
\033[34;1m请输入你的选择(1/2/3):\033[0m"""
choice = raw_input(prompt)
if choice == '':
break
print CMDs[choice]() if __name__ == '__main__':
show_menu()
检验:

[root@master script]# python ip.py
(1)ip转换成数字
(2)数字转换成IP
(3)退出(q)
请输入你的选择(1/2/3):1
请输入需要转换成数字的IP(例如:192.168.1.10): 86.78.98.34
1447977506
(1)ip转换成数字
(2)数字转换成IP
(3)退出(q)
请输入你的选择(1/2/3):2
请输入需要转换成IP的整数: 1447977506
86.78.98.34
(1)ip转换成数字
(2)数字转换成IP
(3)退出(q)
请输入你的选择(1/2/3):3

########终极版##########
[root@master script]# cat ip.py
#!/usr/bin/python
# coding:utf-8 #def ip2int():
# ip = raw_input('请输入需要转换成数字的IP(例如:192.168.1.10): ')
# ip_list = ip.strip().split('.')
# ip_int = int(ip_list[0])*256**3+int(ip_list[1])*256**2+int(ip_list[2])*256**1+int(ip_list[3])*256**0
# return ip_int
def ip2int():
ip = raw_input('请输入需要转换成数字的IP(例如:192.168.1.10): ')
ip_list = ip.strip().split('.')
SUM = 0
for i in range(len(ip_list)):
SUM += int(ip_list[i])*256**(3-i)
return SUM #def int2ip(num):
# iplist = []
# for n in range(4):
# num,mod = divmod(num,256)
# iplist.append(str(mod))
# rip = iplist[::-1]
# rip_num = '.'.join(rip)
# return rip_num def int2ip():
num = int(raw_input('请输入需要转换成IP的整数: '))
iplist = []
for n in range(4):
num,mod = divmod(num,256)
iplist.insert(0,str(mod))
return '.'.join(iplist) def show_menu():
CMDs = {'':ip2int,'':int2ip}
while True:
prompt = """\033[31;1m(1)ip转换成数字\033[0m
\033[32;1m(2)数字转换成IP\033[0m
\033[33;1m(3)退出(q)\033[0m
\033[34;1m请输入你的选择(1/2/3):\033[0m"""
choice = raw_input(prompt)
if choice == '':
break
print CMDs[choice]() if __name__ == '__main__':
show_menu()

Python ip与数字的转换方式的更多相关文章

  1. python 字符与数字如何转换

    python中字符与数字相互转换用chr()即可. python中的字符数字之间的转换函数 int(x [,base ])                               将x转换为一个整 ...

  2. PHP实现IP–数字互相转换

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. PHP IP互换数字[转]

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 在 shell 脚本获取 ip、数字转换等网络操作

    在 shell 脚本获取 ip.数字转换等网络操作 ip 和数字的相互转换 ip转换为数字 :: function ip2num() { local ip=$1 local a=$(echo $ip ...

  5. 『Python基础-5』数字,运算,转换

    『Python基础-5』数字,运算,转换 目录 基本的数字类型 二进制,八进制,十六进制 数字类型间的转换 数字运算 1. 数字类型 Python 数字数据类型用于存储数学上的值,比如整数.浮点数.复 ...

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

    1. 将整数转换成IP: 思路:将整数转换成无符号32位的二进制,再8位进行分割,每8位转换成十进制即可. 方法一:#!usr/bin/python 2 #encoding=utf-8 3 #1. 将 ...

  7. Python 数字格式转换

    # 数字格式转换v1 '''a = input() a1 = list(a) b = ["零", "一", "二", "三&quo ...

  8. 8.python中的数字

    python中数字对象的创建如下, a = 123 b = 1.23 c = 1+1j 可以直接输入数字,然后赋值给变量. 同样也可是使用类的方式: a = int(123) b = float(1. ...

  9. Python拼接字符串的七种方式

    忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串.相信不少同学会有同感. 几乎任何一种编程语言,都把字符串列为最基础和不可或缺的数据类型.而拼接字符串是必备的一种技能.今 ...

随机推荐

  1. jquery怎么找到元素下面的第一个子元素

    <ul><li>11</li><li>22</li><li>33</li><li>44</li&g ...

  2. Hadoop 2.2.0集群搭建

    一.环境说明 1.虚拟机平台:VMware10 2.Linux版本号:ubuntu-12.04.3-desktop-i386 3.JDK:jdk1.7.0_51 4.Hadoop版本号:2.2.0 5 ...

  3. vForum 2014点滴随笔

    vForum2014 的口号:NO Limits 纵横无限 一条好消息:VMware 将在中国建立亚洲研究院,并在5年内投资10亿美元. VMware宋先生的演讲再次印证了Redhat会议上的趋势: ...

  4. Oracle Apex 有用笔记系列 6 - 可编辑交互报告 Editable Interactive Report

    据笔者所知.Apex 4.x 是没有提供可编辑交互报告组件的.这就须要我们手动实现. 事实上这也并非非常复杂,仅仅须要简单几步. 1. 依据向导建立一个interactive report.查询语句能 ...

  5. vue2.0 自定义 折叠列表(Accordion)组件

    1.自定义  折叠列表 Accordion.vue (1)sass  版本 <!-- 折叠列表 组件 --> <template> <nav :class="$ ...

  6. Android加壳native实现

    本例仅在Android2.3模拟器跑通过,假设要适配其它机型.请自行研究,这里不过抛砖引玉. 0x00 在Android中的Apk的加固(加壳)原理解析和实现,一文中脱壳代码都写在了java层非常ea ...

  7. C++ Primer 学习笔记_6_标准库类型 -- 命名空间using与string类型

     标准库类型(一) --命名空间using与string类型 引: 标准库类型是语言组成部分中更主要的哪些数据类型(如:数组.指针)的抽象! C++标准库定义的是高级的抽象数据类型: 1.高级:由 ...

  8. android页面间传递对象

    android传递对象有两种方式: 一种是Serializable和Parcelable 对于第一种方式: import java.io.Serializable; public class Shop ...

  9. Jenkins系列之-—08 实现SQL脚本批量执行

    公司内部推广DevOps,所有目前在维护阶段和开发阶段项目全部配置上了自动发布.采用Jenkins+SVN+ANT,之后批量执行SQL语句的实现提上日程 一.环境 Linux环境 安装ANT工具,且下 ...

  10. 数据挖掘 与 Web开发何去何从

    (0)引子 以下以现实生活中的一个实例引出本博客的探究点.或许类似的情况正发生在你的身边. 小弟工作5年了,近期有点迷茫. 上一份工作在一家比較大的门户站点做web开发和移动互联网数据挖掘(人手比較紧 ...