Python ip与数字的转换方式
例子: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与数字的转换方式的更多相关文章
- python 字符与数字如何转换
python中字符与数字相互转换用chr()即可. python中的字符数字之间的转换函数 int(x [,base ]) 将x转换为一个整 ...
- PHP实现IP–数字互相转换
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- PHP IP互换数字[转]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 在 shell 脚本获取 ip、数字转换等网络操作
在 shell 脚本获取 ip.数字转换等网络操作 ip 和数字的相互转换 ip转换为数字 :: function ip2num() { local ip=$1 local a=$(echo $ip ...
- 『Python基础-5』数字,运算,转换
『Python基础-5』数字,运算,转换 目录 基本的数字类型 二进制,八进制,十六进制 数字类型间的转换 数字运算 1. 数字类型 Python 数字数据类型用于存储数学上的值,比如整数.浮点数.复 ...
- Python—IP地址与整数之间的转换
1. 将整数转换成IP: 思路:将整数转换成无符号32位的二进制,再8位进行分割,每8位转换成十进制即可. 方法一:#!usr/bin/python 2 #encoding=utf-8 3 #1. 将 ...
- Python 数字格式转换
# 数字格式转换v1 '''a = input() a1 = list(a) b = ["零", "一", "二", "三&quo ...
- 8.python中的数字
python中数字对象的创建如下, a = 123 b = 1.23 c = 1+1j 可以直接输入数字,然后赋值给变量. 同样也可是使用类的方式: a = int(123) b = float(1. ...
- Python拼接字符串的七种方式
忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串.相信不少同学会有同感. 几乎任何一种编程语言,都把字符串列为最基础和不可或缺的数据类型.而拼接字符串是必备的一种技能.今 ...
随机推荐
- SSH错误:packet_write_wait: Connection to 10.57.19.250 port 22: Broken pipe
现象:ssh连接以后,服务器会主动断开连接,wireshark抓包,发线服务器会tcp rst,断开ssh连接 解决尝试:1.修改会话超时时间:2.客户端主动间隔性向服务器发送保活报文:3.服务端主动 ...
- Dance In Heap(二):一些堆利用的方法(上)
0×00 前面的话 在前面的文章里我们稍微有点啰嗦的讲解了堆中的一些细节,包括malloc.free的详细过程,以及一些检查保护机制,那在这篇文章里,我们就开始结合这些机制,以64位为例来看一看如何对 ...
- PHP网站http替换https
PHP网站http替换https
- Odoo车辆管理
odoo车辆管理用于管理公司用车,可以记录以下信息 车辆 车辆的服务合同 车辆的里程 车辆的服务记录 车辆的成本 使用之前,先要进行基本设置 基础设置 维护车辆型号 即维护车辆 ...
- 综合运用: C++11 多线程下生产者消费者模型详解(转)
生产者消费者问题是多线程并发中一个非常经典的问题,相信学过操作系统课程的同学都清楚这个问题的根源.本文将就四种情况分析并介绍生产者和消费者问题,它们分别是:单生产者-单消费者模型,单生产者-多消费者模 ...
- Cocos2d-x 3.1.1 学习日志5--cocos2d-x3.1.1打飞机的实现
近期学习了cocos2dx3.1.1的一些功能,认为和曾经版本号改的太多了. 所以就做了一个小项目--打飞机来练习练习,在这里我仅仅讲飞机实现的步骤,至于代码.回复5次就可以获得coco2d-x3.1 ...
- (利用DOM)在新打开的页面点击关闭当前浏览器窗口
1.在开发过程中我们前端的用户体验中有时候会要求点击一个按钮,关闭当前浏览器窗口,用HTML DOM就可做到 2.注意:本次写法要求在新窗口中关闭.target="_blank" ...
- 【Sprint3冲刺之前】项目完成时间表
Sprint2冲刺成果——项目完成时间表 项目完成时间表 经过Sprint2小组总结会议的探讨,我们决定一起约定项目alpha版本,beta版本,release版本的发布时间,发布形式及预计完成效果 ...
- css3背景及字体渐变
1.背景渐变: .linear { width: 100%; FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,sta ...
- oracle sql修改序列为当前序列开始
declare v_num integer; last_value integer;Begin select SEQ_TBM_ID.NEXTVAL into last_value from d ...