<HTML>
<HEAD>
<TITLE>HOSTS文件编辑器</TITLE>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<metahttp-equiv="Content-Language"content="zh-CN">
<HTA:APPLICATIONID="hostedit"
APPLICATIONNAME="hostedit"
BORDER="thick"
BORDER
CAPTION="yes"
ICON="C:WINDOWSsystem32rasphone.exe"
MAXIMIZEBUTTON="yes"
MINIMIZEBUTTON="yes"
SHOWINTASKBAR="yes"
SINGLEINSTANCE="yes"
SYSMENU="yes"
VERSION="1.0"
WINDOWSTATE="normal"/>
<scriptlanguage="JScript">
window.onerror=function()
{
window.alert("程序发生了未知错误,当前窗口将被关闭!");
window.close();
returntrue;
}
varwindowW=450;//窗体宽
varwindowH=200;//窗体高
varcanresize=false;//是否可以改变大小
varwindowW2=windowW;//编辑时窗体宽
varwindowH2=200;//编辑时窗体高
window.resizeTo(windowW,windowH);
//window.moveTo((screen.width-windowW)/2,(screen.height-windowH)/2);
window.onresize=function(){if(!canresize)window.resizeTo(windowW,windowH);}
functioninit()
{
varui_table=document.getElementById('UI_TABLE');
varbestHeight=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);
}
varhostfile='driversetchosts';
functiongetlist(){
varhtml='';
varids='';
vari=1;
FSO=newActiveXObject("Scripting.FileSystemObject");
varspath=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='<ahref="#"onclick="zh('+i+',0);">切本地</a>|<ahref="#"onclick="ed(this,'+i+');">编辑</a>|<ahref="#"onclick="zh('+i+',2);">删除</a>';
}else{
zt='本地';
ip=as[0];
co='#fff!important';
cz='<ahref="#"onclick="zh('+i+',1);">切外网</a>|<ahref="#"onclick="ed(this,'+i+');">编辑</a>|<ahref="#"onclick="zh('+i+',2);">删除</a>';
}
html+='<tr><td+co+';">'+zt+'</td><td+co+';text-align:left;text-indent:6px;">'+as[1]+'</td><td+co+';">'+ip+'</td><td+co+';">'+cz+'</td></tr>';
}
i++;
}
varo=document.getElementById('ids');
o.value=ids;
host.Close();
returnhtml;
}
functioned(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);
}
functionedits(sIp,sUrl){
varoi=document.getElementById(sIp);
varou=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;
}
variId=document.getElementById('editId').value;
varbody='';
vari=1;
FSO=newActiveXObject("Scripting.FileSystemObject");
varspath=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();
}
functionzh(irs,stype)
{
varbody='';
vari=1;
FSO=newActiveXObject("Scripting.FileSystemObject");
varspath=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";
}elseif(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();
}
functionzhall(stype)
{
varbody='';
vari=1;
varids1=document.getElementById("ids").value;
if(ids1=='')return;
FSO=newActiveXObject("Scripting.FileSystemObject");
varspath=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";
}elseif(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();
}
functionAddHosts(sIp,sUrl){
varoi=document.getElementById(sIp);
varou=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=newActiveXObject("Scripting.FileSystemObject");
varspath=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:#2C59AA1pxsolid;
FONT-SIZE:12px;
COLOR:black;
FILTER:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#ffffff,EndColorStr=#C3DAF5);
height:22px;
padding:3px5px0px;
text-decoration:none;
}
.edit{
BORDER:#2C59AA1pxsolid;
padding:1px;
}
#UI_TABLE{
width:99%;cell-spacing:0px;margin:1px;border-collapse:collapse;border:1pxsolid#7d7d7d;
}
#UI_TABLEtr.TopTitle{
text-align:center;
}
#UI_TABLEtr.TopTitletd{
background-color:#C8E2F7;
}
#UI_TABLEtrtd{
border:1pxsolid#7d7d7d;text-align:center;padding:1px;
}
</style>
</HEAD>
<BODYonLoad="init()"oncontextmenu="returnfalse;">
<divid="HostList">
<inputtype="hidden"name="ids"/>
<tableid="UI_TABLE">
<trclass="TopTitle">
<td>状态</td>
<td>域名</td>
<td>IP地址</td>
<td>操作</td>
</tr>
<scriptlanguage="javascript"type="text/JavaScript">
document.writeln(getlist());
</script>
</table>
<div>
<inputtype="button"value="全部切本地"name="b4"onclick="zhall(0);"class="BUTT"/>
<inputtype="button"value="全部切外网"name="b5"onclick="zhall(1);"class="BUTT"/>
<inputtype="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>
<divid="addHost">
<inputtype="hidden"name="editId"name="editId"/>
<div>IP地址:<inputtype="text"name="pIP"id="pIP"class="edit"/><inputtype="button"value="127.0.0.1"name="b2"onclick="document.getElementById('pIP').value='127.0.0.1';"class="BUTT"/></div>
<div>域名:<inputtype="text"name="pURL"id="pURL"class="edit"/></div>
<div>
<inputtype="button"value="提交"name="b1"id="addButt"onclick="AddHosts('pIp','pURL');"class="BUTT"/>
<inputtype="button"value="编辑"name="b2"id="editButt"onclick="edits('pIp','pURL');"class="BUTT"/>
<inputtype="button"value="返回"name="b3"onclick="window.location.reload();"class="BUTT"/>
</div>
</div>
<script>
//屏蔽部分键盘操作,比如F5
functiondocument.onkeydown()
{wek=window.event.keyCode;
if((window.event.altKey)&&((wek==37)||(wek==39)))
{window.alert("Error:Invalidoperation!");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");returnfalse;}
if(wek==122){window.event.keyCode=0;window.alert("Error:Invalidoperation!");returnfalse;}
}
</script>
</BODY>
</HTML>
hostedit.rar