美文网首页python百例
111-配置IP地址

111-配置IP地址

作者: 凯茜的老爸 | 来源:发表于2018-08-12 13:36 被阅读50次

    RHEL7主机有四块网卡,名为eth0/eth1/eth2/eth3。为四块网卡配置IP地址。

    #!/usr/bin/env python
    
    import sys
    import re
    
    def configip(fname, ip_addr, if_ind):
        content = """TYPE=Ethernet
    BOOTPROTO=none
    NAME=eth%s
    DEVICE=eth%s
    ONBOOT=yes
    IPADDR=%s
    PREFIX=24
    """ % (if_ind, if_ind, ip_addr)
        with open(fname, 'w') as fobj:
            fobj.write(content)
    
    def check_ip(ip_addr):   # 判断IP地址是不是X.X.X.X格式
        m = re.match(r'(\d{1,3}\.){3}\d{1,3}$', ip_addr)
        if not m:
            return False
        return True
    
    def show_menu():
        prompt = """Configure IP Address:
    (0) eth0
    (1) eth1
    (2) eth2
    (3) eth3
    Your choice(0/1/2/3): """
        try:
            if_ind = raw_input(prompt).strip()[0]
        except:
            print 'Invalid input.'
            sys.exit(1)
    
        if if_ind not in '0123':
            print 'Wrong Selection. Use 0/1/2/3'
            sys.exit(2)
    
        fname = '/etc/sysconfig/network-scripts/ifcfg-eth%s' % if_ind
        ip_addr = raw_input('ip address: ').strip()
        result = check_ip(ip_addr)
        if not result:
            print 'Invalid ip address'
            sys.exit(3)
        configip(fname, ip_addr, if_ind)
        print '\033[32;1mConfigure ip address done. Please execute "systemctl restart NetworkManager"\033[0m'
    
    if __name__ == '__main__':
        show_menu()
    

    相关文章

      网友评论

        本文标题:111-配置IP地址

        本文链接:https://www.haomeiwen.com/subject/yussbftx.html