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()
时间: 2024-10-24 23:35:55

python脚本修改hosts文件的相关文章

批处理脚本修改hosts文件指定域名解析IP

现在很多网站都是前后台分开部署的,这样做是相对安全的.就算黑客拿到了前台shell也找不到后台的管理地址,增加安全性. 大家应该知道hosts文件的功能吧,用户在访问网站的时候 需要把域名解析成IP地址才能连接获取内容,解析域名的时候一般都会先查看hosts里有没有相关的记录,如果有直接返回IP,如果没有再用dns解析. 所以如果修改了hosts文件,就算这个域名没有解析也可以返回指定的IP,就可以访问后台.其它人不能访问. 后台管理地址一般只是管理团队内部使用,如果这个域名不解 析,只是修改一

利用脚本修改Hosts文件

@echo off   d:    copy 111 111.bak    echo 11.1.1.1 AFAA >> D:\111     echo 192.168.2.188 AFAFAFDDDF >> D:\111

【转】Ubuntu修改Hosts文件工具HostsTool使用说明

国内IT开发者都会面临访问google等国外网站不稳定的问题,这些问题一方面可以通过番墙来解决,也可以通过修改本机hosts文件来解决. 之前在Windows上一直使用HostsTool这个国人的修改hosts文件软件,切换到Ubuntu环境自然也首先想到这个工具.Ubuntu安装方法如下: 1.下载最新版HostsTool for linux 打开https://hosts.huhamhire.com/get-hosts-x11.html,也可以这里下载1.9.8版本,更新日期:2014030

小兴趣:修改Hosts文件,禁止访问指定网页

不知道Hosts文件什么鬼的朋友可以在网上搜索一下(大牛勿喷- -) 访问网址时,先查询本地的Hosts文件,那么如果我们将Hosts文件中的网址与IP的映射修改之后,将访问错误的IP. 如在文件尾追加:127.0.0.1 www.baidu.com 正常情况没有管理员以上的权限,是无法修改Hosts文件的(进程注入,创建服务,篡改注册表,直接拿System权限的,求无视) 方法1:在用户组中,将当前系统用户提权为Administrator权限 方法2:将原Hosts文件拷贝副本,修改后粘贴回去

给大家分享web开发新手修改hosts文件实现本地域名访问的正确方法

1.如何正确修改hosts文件: 一般打开hosts文件里面都会有个示例,按照其格式修改即可 比如以下内容: # For example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host 即代表打开rhino.acme.com这个网址将解析到102.54.94.97,ip地址与网址间至少有一空格,当然建议通过按Table键来编辑,即美观又不容易编写失误;这也就是通过解

Ubuntu下修改hosts文件

Ubuntu系统的Hosts只需修改/etc/hosts文件,修改完之后要重启网络.具体过程如下:1.修改hostssudo gedit /etc/hosts2.添加解析记录( . )或者从github上下载的hosts文件 保存时终端报错: (gedit:2771): Gtk-WARNING **: Calling Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.

修改hosts文件在本地使域名解析到指定IP

如何修改hosts文件? 1)hosts文件的位置:C:\windows\system32\drivers\etc,文件夹中找到Hosts文件并用记事本打开. 2)按照 ip地址  域名 的格式添加单独的一行记录.例如112.124.39.29 www.server110.com注意,IP地址前面不要有空格,ip地址和域名之间,要有至少1个空格.修改后,一定要记得保存文件. 3)如何知道域名的IP地址已经生效?在您的电脑上请按如下步骤操作:开始-->运行-->输入cmd-->ping 域

Windows下PHP修改Hosts文件的方法

通过PHP程序完成修改Hosts文件原理如下: 1,首先是写一个.bat文件 2,使用system(),调用.bat完成修改Hosts的目的 代码如下: //创建.bat $filename = "updata.bat"; //'@echo 127.0.0.1 baidu.com >>C:\Windows\System32\Drivers\etc\hosts 关于.bat中的内容可以参考DOS命令行 file_put_contents($filename,'@echo 12

mac 下修改Hosts文件

最近Google网站老是打不开,具体原因大家都明白,不过修改Hosts文件后,就能访问了,也算不上原创,网上一搜就能找到,自己操作记录下,希望有刚接触Mac 系统的童鞋有帮助. 第一步:打开Finder,输入快捷键:shift+cmd+G,键入:/private 第二步:找到etc目录,右键菜单选择"显示简介": 第三步:修改文件夹权限: 第四步:参考第三步,修改etc/hosts文件权限: 第五步:打开hosts文件,输入Google的host信息,退出保存,再刷新Google首页试