HTA编辑HOST文件的脚本

<HTML>
<HEAD>
<TITLE>HOSTS 文件编辑器</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Content-Language" content="zh-CN">
<HTA:APPLICATION ID="hostedit"
APPLICATIONNAME="hostedit"
BORDER="thick"
BORDERSTYLE="normal"
CAPTION="yes"
ICON="C:\WINDOWS\system32\rasphone.exe" 
MAXIMIZEBUTTON="yes"
MINIMIZEBUTTON="yes"
SHOWINTASKBAR="yes"
SINGLEINSTANCE="yes"
SYSMENU="yes"
VERSION="1.0"
WINDOWSTATE="normal" />
<script language="JScript">
window.onerror = function ()
{
    window.alert("程序发生了未知错误,当前窗口将被关闭!");
    window.close();
    return true;
}
var windowW=450;    //窗体宽
var windowH=200;    //窗体高
var canresize=false;//是否可以改变大小
var windowW2=windowW;//编辑时窗体宽
var windowH2=200;//编辑时窗体高
window.resizeTo(windowW,windowH);
//window.moveTo((screen.width-windowW)/2,(screen.height-windowH)/2);
window.onresize=function(){if(!canresize)window.resizeTo(windowW,windowH);}
function init()
{
    var ui_table = document.getElementById('UI_TABLE');
    var bestHeight = 70+ui_table.scrollHeight;
    if(bestHeight > screen.height) bestHeight = screen.height;
    window.resizeTo(windowW, bestHeight);
    //window.moveTo((screen.width-windowW)/2,(screen.height-bestHeight)/2);
}
var hostfile = '\\drivers\\etc\\hosts';
function getlist(){
    var html='';
    var ids='';
    var i=1;
    FSO = new ActiveXObject("Scripting.FileSystemObject");
    var spath = FSO.GetSpecialFolder(1)+hostfile;
    host = FSO.OpenTextFile(spath, 1, false);
    while(!host.AtEndOfStream){
         tmp = host.ReadLine();
         if(/^#?\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\s+([a-zA-Z0-9\-]+\.[a-zA-Z0-9\-]+(\.(com|net|org|edu|info|biz|cc|tv|gov|mobi|name|cn|en|us|hk|tw))+)$/.test(tmp))
         {
        as=tmp.replace(/\s+/,'|:|').split('|:|');
        ids+='['+i+'],';
        if(/^\#/.test(as[0])){
            zt = '外网';
            ip = as[0].replace(/^\#/,'');
            co = '#eee!important';
            cz = '<a href="#" style="color:red;" onclick="zh('+i+',0);">切本地</a> | <a href="#" style="color:red;" onclick="ed(this,'+i+');">编辑</a> | <a href="#" style="color:red;" onclick="zh('+i+',2);">删除</a>';

}else{
            zt = '本地';
            ip = as[0];
            co = '#fff!important';
            cz = '<a href="#" onclick="zh('+i+',1);">切外网</a> | <a href="#" style="color:red;" onclick="ed(this, '+i+');">编辑</a> | <a href="#" style="color:red;" onclick="zh('+i+',2);">删除</a>';    
        }

html += '<tr><td style="background:'+co+';">'+zt+'</td><td style="background:'+co+';text-align:left;text-indent:6px;">'+as[1]+'</td><td style="text-align:left;text-indent:6px;background:'+co+';">'+ip+'</td><td style="background:'+co+';">'+cz+'</td></tr>';
        }
        i++;
    }
    var o=document.getElementById('ids');
    o.value=ids;
    host.Close();
    return html;
}

function ed(eo, iId){    
    document.getElementById('editId').value=iId;
    document.getElementById('pIP').value=eo.parentElement.parentElement.children[2].innerText;
    document.getElementById('pURL').value=eo.parentElement.parentElement.children[1].innerText;
    document.getElementById('addButt').style.display='none';
    document.getElementById('editButt').style.display='inline';
    document.getElementById('HostList').style.display='none';
    document.getElementById('addHost').style.display='block';
    window.resizeTo(windowW2,windowH2);
}

function edits(sIp, sUrl){
    var oi=document.getElementById(sIp);
    var ou=document.getElementById(sUrl);
    if(oi.value=='' || /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(oi.value)==false) {
        alert('IP地址不能为空或你输入的IP格式错误.');
        oi.focus();
        return;
    }
    if(ou.value=='' || /^[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-]+(\.(com|net|org|edu|info|biz|cc|tv|gov|mobi|name|cn|en|us|hk|tw))+$/.test(ou.value)==false) {
        alert('域名不能为空或你输入的域名格式错误.');
        ou.focus();
        return;
    }
    var iId = document.getElementById('editId').value;
    var body='';
    var i=1;
    FSO = new ActiveXObject("Scripting.FileSystemObject");
    var spath = FSO.GetSpecialFolder(1)+hostfile;    
    host = FSO.OpenTextFile(spath, 1, false);
    while(!host.AtEndOfStream){
        tmp = host.ReadLine();
        if(i==iId)
        {
            body+=oi.value+"\t"+ou.value+"\n";
        }
        else{
            body+=tmp+"\n";
        }
        i++;
    }
    host.close();
    svf = FSO.OpenTextFile(spath, 2, false);
    svf.Write(body);
    svf.close();
    window.location.reload();
}

function zh(irs,stype)
{
    var body='';
    var i=1;
    FSO = new ActiveXObject("Scripting.FileSystemObject");
    var spath = FSO.GetSpecialFolder(1)+hostfile;    
    host = FSO.OpenTextFile(spath, 1, false);
    while(!host.AtEndOfStream){
        tmp = host.ReadLine();
        if(i==irs)
        {
            if(stype==0){
                body+=tmp.replace(/^\#/,'');
                body+="\n";
            }else if(stype==1){
                if(/^\#/.test(tmp)){
                    body+=tmp+"\n";
                }else{
                    body+='#'+tmp +"\n";
                }
            }else{

}
        }
        else{
            body+=tmp+"\n";
        }
        i++;
    }
    host.close();
    svf = FSO.OpenTextFile(spath, 2, false);
    svf.Write(body);
    svf.close();
    window.location.reload();
}

function zhall(stype)
{
    var body='';
    var i=1;
    var ids1=document.getElementById("ids").value;
    if(ids1=='') return;
    FSO = new ActiveXObject("Scripting.FileSystemObject");
    var spath = FSO.GetSpecialFolder(1)+hostfile;    
    host = FSO.OpenTextFile(spath, 1, false);
    while(!host.AtEndOfStream){
        tmp = host.ReadLine();
        if(stype==0 && ids1.indexOf('['+i+'],')!== -1){
            body+=tmp.replace(/^\#/,'');
            body+="\n";
        }else if(stype==1 && ids1.indexOf('['+i+'],')!== -1){
            if(/^\#/.test(tmp)){
                body+=tmp+"\n";
            }else{
                body+='#'+tmp +"\n";
            }
        }else{
            body+=tmp+"\n";
        }
        i++;
    }
    host.close();
    svf = FSO.OpenTextFile(spath, 2, false);
    svf.Write(body);
    svf.close();
    window.location.reload();
}

function AddHosts(sIp, sUrl){
    var oi=document.getElementById(sIp);
    var ou=document.getElementById(sUrl);
    if(oi.value=='' || /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(oi.value)==false) {
        alert('IP地址不能为空或你输入的IP格式错误.');
        oi.focus();
        return;
    }
    if(ou.value=='' || /^[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-]+\.((net)|(com)|(cn)|(org)|(cc)|(tv))$/.test(ou.value)==false) {
        alert('域名不能为空或你输入的域名格式错误.');
        ou.focus();
        return;
    }

FSO = new ActiveXObject("Scripting.FileSystemObject");
    var spath = FSO.GetSpecialFolder(1)+hostfile;    
    host = FSO.OpenTextFile(spath, 8, false);
    host.Write("\n"+oi.value+"\t"+ou.value+"\n");
    host.close();
    alert('增加域名成功!');
    window.location.reload();
}
</script>
<style>
body{
 background-color:#99CCFF;
}
body *{
    font-size:12px;
    margin:0px;
    padding:0px;
}
.BUTT{
    BORDER: #2C59AA 1px solid;
    FONT-SIZE: 12px;
    COLOR: black;
    FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#C3DAF5);
    height:22px;
    padding: 3px 5px 0px;
    text-decoration: none;
}
.edit{
   BORDER: #2C59AA 1px solid;
   padding:1px;
}
#UI_TABLE{
    width:99%;cell-spacing:0px; margin:1px; border-collapse:collapse; border:1px solid #7d7d7d;
}
#UI_TABLE tr.TopTitle{
    text-align:center;
}
#UI_TABLE tr.TopTitle td {
    background-color:#C8E2F7;
}
#UI_TABLE tr td{
    border:1px solid #7d7d7d;text-align:center;padding:1px;
}

</style>
</HEAD>
<BODY  onLoad="init()" oncontextmenu="return false;" style="text-align:center; margin:0px;overflow-y:auto;overflow-x:hidden;border:none;background:menu;">
<div id="HostList">
    <input type="hidden" name="ids"/>
    <table id="UI_TABLE" >
        <tr class="TopTitle">
            <td>状态</td>
            <td style="width:140px;">域名</td>
            <td>IP地址</td>
            <td style="width:140px;">操作</td>    
        </tr>
        <script language="javascript" type="text/JavaScript">
               document.writeln(getlist());
        </script>
    </table>
    <div style="margin:6px;text-align:center;">
        <input type="button" value="全部切本地" name="b4" onclick="zhall(0);" class="BUTT" />    
        <input type="button" value="全部切外网" name="b5" onclick="zhall(1);" class="BUTT" />    
        <input type="button" value="增加域名" name="b6" onclick="document.getElementById('HostList').style.display='none';document.getElementById('addHost').style.display='block'; window.resizeTo(windowW2,windowH2);" class="BUTT" />
    </div>
</div>
<div id="addHost" style="display:none;">
    <input type="hidden" name="editId" name="editId" />
    <div style="text-align:left;margin:30px auto 0px; width:300px;">IP地址:<input type="text" name="pIP" id="pIP" class="edit" />  <input type="button" value="127.0.0.1" name="b2" onclick="document.getElementById('pIP').value='127.0.0.1';" class="BUTT" /></div>
    <div style="text-align:left;margin:20px auto; width:300px;">域  名:<input type="text" name="pURL" id="pURL" class="edit" /></div>
    <div style="margin:10px;text-align:center;">
        <input type="button" value="提  交" name="b1" id="addButt" onclick="AddHosts('pIp','pURL');" class="BUTT" />    
        <input type="button" value="编  辑" name="b2" id="editButt" style="display:none;" onclick="edits('pIp','pURL');" class="BUTT" />    
        <input type="button" value="返  回" name="b3" onclick="window.location.reload();" class="BUTT" />
    </div>
</div>

<script>
//屏蔽部分键盘操作,比如 F5
function document.onkeydown()
{wek=window.event.keyCode;
if((window.event.altKey)&&((wek==37)||(wek==39)))
{window.alert("Error:Invalid operation!");event.returnValue=false;}
if((wek==116)||(event.ctrlKey&&wek==82))
{window.event.keyCode=0;event.returnValue=false;}
if((event.ctrlKey)&&(wek==78))
event.returnValue=false;
if((event.shiftKey)&&(wek==121))
event.returnValue=false;
if(window.event.srcElement.tagName=="A"&&window.event.shiftKey)
window.event.returnValue=false;
if((window.event.altKey)&&(wek==115))
{window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");return false;}
if(wek==122){window.event.keyCode=0;window.alert("Error:Invalid operation!");return false;}
}
</script>
</BODY>
</HTML>
hostedit.rar

(0)

相关推荐

  • HTA编辑HOST文件的脚本

    <HTML> <HEAD> <TITLE>HOSTS 文件编辑器</TITLE> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <meta http-equiv="Content-Language" content="zh-CN"> <HTA:APPLICAT

  • 用BAT脚本快速编辑host文件的方法例子

    做web程序开发的时候有时候会做这样一种操作,就是修改hosts文件做虚拟域名映射以方便本地开发,比如将www.jb51.net这个域名指向本地的127.0.0.1,这种操作过程本身没什么复杂可言,但是在windows环境里面,hosts文件藏匿的很深,这样我们每次不得不百度一下hosts文件路径然后一层一层的去打开文件目录去找到这个文件,要是改的频繁的话,还真是比较麻烦,于是这里本人总结了一种比较不错又略显高手的一种方法分享一下. 一.用文本编辑软件比如记事本编写如下一段代码: 复制代码 代码

  • 使用vbs删除host文件域址内容

    要求:原先host里面已增加以下3行 202.102.101.105 intranet.corp 202.102.101.107 mail.intranet.corp 202.102.101.108 sip.intranet.corp 之后不需要此3行内容,所以运行以上vbs代码,来删除host文件此3行 '该脚本要求执行用户有本地管理员权限 Const ForReading = 1, ForWriting = 2, ForAppending = 8, ReadOnly = 1 Set fso

  • Windows Powershell 执行文件和脚本

    象运行可执行文件一样,Powershell运行文件和脚本,也必须使用绝对路径或者相对路径,或者要运行的文件必须定义在可受信任的环境变量中. 关于脚本 脚本和批处理都属于伪可执行文件,它们只是包含了若干命令行解释器能够解释和执行的命令行代码. 执行批处理文件 批处理是扩展名为".bat"的文本文件,它可以包含任何cmd控制台能够处理的命令.当批处理文件被打开,Cmd控制台会逐行执行每条命令.那Powershell能够直接执行批处理吗? 将下列命令保存为ping.bat @echo off

  • 利用wscript执行文件[包括可执行exe文件]vbs脚本

    昨天下载并且安装了Updater Application Block后,需要执行一个Deploy.vbs的文件,鄙人才疏学浅,这个小问题竟然也花费了我不少心机. 现在把结论共享一下. 首先,我的vbs文件关联已经被"豪杰"夺取了.我双击Deploy.vbs就会打开豪杰,比较郁闷.但是我用了打开方式,试了浏览器.cmd,都无济于事. 今天,我想到这个问题后,就有想法去Microsoft的News Group上去问一问.然后又去了CSDN的全文检索.果然很争气,我的关键字只是vbs,执行,

  • 编辑IL文件 修改DLL文件的方法

    如:KS.Gantt.DLL 为例 1.使用ILSpy反编译 工具 2.利用ildasm反编译 KS.Gantt.dll  生成IL中间代码 一般会生成 *.il 和*.res 一些其它资源文件 *.resources 3.然后用记事本修改IL文件 4.然后用ilasm编译中间代码,生成新的KS.Gantt.dll 5.在项目中使用 查看效果 破解过程 1 我找到了Gantt 控件的验证的代码 2 利用ildasm反编译 KS.Gantt.dll 3 打开IL文件找到对应的代码然后删除掉 如果不

  • sql server使用临时存储过程实现使用参数添加文件组脚本复用

    create procedure #pr_CreateFileGroup @dbname nvarchar(max), @filegroupname nvarchar(max) as begin /* 脚本来源:https://www.cnblogs.com/zhang502219048/p/12105527.html 脚本作者:zhang502219048 功能:通过创建临时存储过程拼接SQL语句,实现创建文件组语句可以传递参数,避免写重复代码段,实现脚本代码的封装复用. */ declare

  • IDEA中使用Typora编辑md文件的方法

    1.本文要解决的问题 使用typora打开项目中的md文件 2.预期效果 选中文件,按下alt+t,调用typora打开此md文件 3.IDEA配置 配置完成后,当我们右击某文件时,会多出一个External Tool项,此时可以选择使用第三方程序打开 4.添加快捷键 总结 到此这篇关于IDEA中使用Typora编辑md文件的文章就介绍到这了,更多相关Typora编辑md文件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • Python实现自动整理文件的脚本

    前言 工作上的文档和资料好几个月没整理了,因为平常太忙都是随手往桌面丢.整个桌面杂乱无章全是文档和资料.几乎快占满整个屏幕了,所有我必须要整理一下了.但是手动整理太费时间了,于是我想到了python. 示例 import os import glob import shutil ''' @Author: huny @date: 2020.12.06 @function: 桌面整理 ''' class FileType(): def __init__(self): self.filetype =

  • 浅谈Docker如何自定义host文件

    目录 一.命令 二.docker-compose.yml 三.dockerfile 四.直接修改 五.修改镜像 总结 1.问:我们的真正开发的时候数据库都是部署在内网的,而我们程序连接数据库的时候,需要指定内网的地址.但是有时候我们需要迁移环境,那么我们的后端代码就得跟着进行修改,有没有一种好的办法,不让我们修改代码吗? 答:可以肯定的说是有的,那就是在代码中指定的不是IP地址,而是域名.我们只需要配置域名和IP地址建立映射关系,所有的项目都无需更改代码就可以达到目的. 2.问:正式环境一般都是

随机推荐