专栏首页python3python脚本修改hosts文件

python脚本修改hosts文件

记一次使用python脚本来修改hosts文件,由于公司服务器需要换ip地址,服务器里都是Linux系统,而hosts文件中有些解析的ip,手动一台一台的解析太麻烦,就写了这个脚本。本来以为感觉很简单,但是写的过程真不好写,也试过shell脚本,不过也不好写。然后就直接用python写,也找了一些网上的教程,不过也没有很好的解决问题。下面把脚本贴出来记录下

#!/usr/bin/python
#coding:utf8
import os
import sys
import re

hostsfile="/etc/hosts"  #hosts文件绝对路径

ip_dict = {"1.1.1.1":"2.2.2.1","1.1.1.2":"2.2.2.2","1.1.1.3":"2.2.2.3"}  #这是自定义的字典形式为:old_ip:new_ip

ip = [] #定一个空列表,来存储old_ip的列表
Line=[] # 定一个空列表,来存储修改后的hosts文件内容的列表

fd = open(hostsfile).readlines()  #打开文件

#用for循环得到old_ip的列表
for old_ip in ip_dict.keys():
    ip.append(old_ip)

#用for循环列出每一行,并进行匹配old_ip 如果匹配到就使用re.sub()进行替换。并存储在Line这个列表中
for line in fd:
    if line.strip() == '':
        #continue
        Line.append(line) ##如果是空行也加入列表中,保证文件内容与原内容形式一致
    else:
        h_ip = line.strip().split()[0] ##取得hosts文件中的ip地址
        if h_ip in ip:
            lin = re.sub(h_ip,ip_dict[h_ip],line) #如果匹配到就进行替换
            print "文件修改的内容如下:"
            print "%s --> %s" %(line.strip("\n"),lin)
            Line.append(lin)
        else:
            Line.append(line)

#最后得到Line列表
#重新把列表的内容写入到/etc/hosts文件中
fc = open(hostsfile,'w')
fc.writelines(Line)
fc.close()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python 扫描内网存活主机

    py3study
  • 调用python-nmap实现扫描局域网

    使用环境:Raspberry 3b+ +netifaces+python-nmap+nmap

    py3study
  • python实现主机批量管理

        在日常的运维工作中批量对主机的是很常见的,市面上也有许多主机批量管理的软件,但有时候这些软件并不能完全的满足我们的需求。python中刚好提供了关于主机...

    py3study
  • SpringBoot自定义拦截器实现IP白名单功能

    转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/8993331.html

    上帝
  • SpringBoot自定义拦截器实现IP白名单功能

    上帝
  • 一个简单的ip黑名单实例

    Youngxj
  • SpringBoot自定义拦截器实现IP白名单功能

    上帝
  • 部署在docker里的java程序获取真实的用户ip地址

    目前我们的服务都是全部docker化,网关zuul和各微服务都部署在docker里,构成了集群。

    天涯泪小武
  • shell脚本-shell的getops 原

    (adsbygoogle = window.adsbygoogle || []).push({});

    阿dai学长
  • Spring 获取真实Ip

    但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,...

    DH镔

扫码关注云+社区

领取腾讯云代金券