Python IP切换
短信预约 -IT技能 免费直播动态提醒
最近在笔记本重新安装了虚拟机,由于在家在公司经常需要切换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"
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341