码迷,mamicode.com
首页 > 编程语言 > 详细

Python IP切换

时间:2015-01-21 06:41:48      阅读:322      评论:0      收藏:0      [点我收藏+]

标签:python ip gateway

        最近在笔记本重新安装了虚拟机,由于在家在公司经常需要切换IP,修改IP配置文件,觉得挺繁琐的,所以就索性的写了一个自动切换IP的脚本,主要是读配置文件修改,详情如下:

1、创建配置文件:

# cat ip.conf
[home]
ip = 192.168.7.150
gateway = 192.168.7.1

[work]
ip = 10.7.93.150
gateway = 10.7.93.1

2、脚本实例

#!/usr/bin/env  python
# conding = utf-8
# finame swtch_ip.py
# This is swtch ip python file

import socket,os,sys
import ConfigParser
import time
from optparse import OptionParser

def init():
    global IPS
    global GATEWAYS
    config = ConfigParser.ConfigParser()
    dir = os.path.dirname(os.path.abspath(__file__))
    conf = dir + "/conf"
    filepath = "%s/ip.conf" %(conf)
    if not os.path.exists(filepath):
        raise "ERROR: ip.conf is not it!"
    config.read(filepath)
    IPS = config.get(options.type,"ip")
    GATEWAYS = config.get(options.type,"gateway")
    print "======[%s] Start get new options,please wait... ======" %(options.type)
    print "%s config file ip is %s,gateway is %s" %(options.type,IPS,GATEWAYS)

def getopts():
    MSG_USAGE=‘‘‘python %s -t home‘‘‘ % sys.argv[0]
    optParser=OptionParser(MSG_USAGE)
    optParser.add_option(‘-t‘,action=‘store‘,type=‘string‘,dest=‘type‘,default=‘work‘,help=u‘type:work,home‘)
    (options,args)=optParser.parse_args()
    return options

def ipconfig():
    ipconfigfile = open(‘/etc/sysconfig/network-scripts/ifcfg-eth0‘,‘r‘)
    while True:
        ipconfiglines = ipconfigfile.readlines()
        if not ipconfiglines:
	    break
    	#ipconfigfile.close()
	if "IPADDR" in ipconfiglines[4] and "GATEWAY" in ipconfiglines[3]:
	    print "====== Change IP and GATEWAY, please wait... ======"
            temp = ipconfiglines[4].split(‘\"‘)
            a = temp[1]
            temp1 = ipconfiglines[3].split(‘\"‘)
            b = temp1[1]
            print "ifcfg-et0 config old IP is %s and old GATEWAY is %s" %(a,b)
            edit_file = os.system(‘sed -i "s/‘+a+‘/‘+IPS+‘/g;s/‘+b+‘/‘+GATEWAYS+‘/g" /etc/sysconfig/network-scripts/ifcfg-eth0‘)
            if edit_file == 0:
                print ‘Edit ifcfg-eth0 ip and gateway is OK,restart network restart‘
                restart_network = os.system(‘/etc/init.d/network restart‘)
		if restart_network == 0:
		    print "Network restart Succ!"
                else:
	            print "Network restart Fail!"
	    else:
                print ‘Edit ifcfg-eth0 ip is ERROR‘
	else:
	    print "no IP address and GATEWAY!!!"

if __name__ == ‘__main__‘:
    if len(sys.argv)<1 and sys.argv[1] != ‘-h‘ and sys.argv[1] != ‘--help‘:
        print ‘‘‘Usage:  python %s -t work
        python %s -h|--help‘‘‘ % (sys.argv[0],sys.argv[0])
        sys.exit(1)
    options = getopts()
    init()
    ipconfig()

3、查看帮助

# python swich_ip.py --help
Usage: python swich_ip.py -t home

Options:
  -h, --help  show this help message and exit
  -t TYPE     type:work,home

4、运行测试

# python swich_ip.py -t home
======[home] Start get new options,please wait... ======
home config file ip is 192.168.7.250,gateway is 192.168.7.1
====== Change IP and GATEWAY, please wait... ======
ifcfg-et0 config old IP is 192.168.7.250 and old GATEWAY is 192.168.7.1
Edit ifcfg-eth0 ip and gateway is OK,restart network restart
正在关闭接口 eth0:                                        [确定]
关闭环回接口:                                             [确定]
弹出环回接口:                                             [确定]
弹出界面 eth0:                                            [确定]
Network restart Succ!

5、结果

# cat  /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
ONBOOT="yes"
BOOTPROTO="static"
GATEWAY="192.168.7.1"
IPADDR="192.168.7.250"



本文出自 “&思远晨曦” 博客,请务必保留此出处http://kling.blog.51cto.com/3320545/1606396

Python IP切换

标签:python ip gateway

原文地址:http://kling.blog.51cto.com/3320545/1606396

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!