zoukankan      html  css  js  c++  java
  • 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 = {'1':ip2int,'2':int2ip}
        while True:
            prompt = """33[31;1m(1)ip转换成数字33[0m
    33[32;1m(2)数字转换成IP33[0m
    33[33;1m(3)退出(q)33[0m
    33[34;1m请输入你的选择(1/2/3):33[0m"""
            choice = raw_input(prompt)
            if choice == '3':
                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 = {'1':ip2int,'2':int2ip}
        while True:
            prompt = """33[31;1m(1)ip转换成数字33[0m
    33[32;1m(2)数字转换成IP33[0m
    33[33;1m(3)退出(q)33[0m
    33[34;1m请输入你的选择(1/2/3):33[0m"""
            choice = raw_input(prompt)
            if choice == '3':
                break
            print CMDs[choice]()
        
    if __name__ == '__main__':
         show_menu()
  • 相关阅读:
    Threaten Model
    什么是虚拟主机
    http代理服务器
    什么是https
    缓存的实现原理
    Cookie和Session
    HTTP协议详解
    心路历程——毕设程序mr跑不通的问题
    bash: hadoop:command not found
    Mapreduce 测试自带实例 wordcount
  • 原文地址:https://www.cnblogs.com/shanhua-fu/p/7344575.html
Copyright © 2011-2022 走看看