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()
  • 相关阅读:
    UILocalNotification实现本地的闹钟提醒的方法
    自定义UITableViewCell:Cell高度、分割线、间距等
    第三方苹果开发库之ASIHTTPRequest(翻译版)
    字符串NSString和数组NSArray操作
    MFMailComposeViewController发送邮件的实例
    IOS开发之手势—UIGestureRecognizer 共存
    ios 画图总结 [转]
    iOS-响应上下左右滑动手势
    MFMessageComposeViewController程序内发送短信息的实例
    FIELDSYMBOLS 学习—转载
  • 原文地址:https://www.cnblogs.com/shanhua-fu/p/7344575.html
Copyright © 2011-2022 走看看