javascript判断并获取注册表中可信任站点的方法


Posted in Javascript onJune 01, 2015

本文实例讲述了javascript判断并获取注册表中可信任站点的方法。分享给大家供大家参考。具体分析如下:

判断可信任站点,首先要在注册表中找到可信任站点在注册表中的位置,如下:

(1)域名作为可信任站点在注册表中的位置:

 HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\

(2)IP作为可信任站点在注册表中的位置:

 HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Ranges

javascript判断并获取注册表中可信任站点的方法

具体测试代码如下:

index.jsp:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>获取并判断可信任站点(域名和IP)</title>
<style type="text/css">
.mainContent{ 
 margin: 0 auto; 
 margin-top: 100px; 
 margin-left: 100px; 
} 
</style>
<script type="text/javascript" src="js/testRegister.js"></script>
</head>
<body>
<div class="mainContent">
  <input type="button" value="是否是可信站点" id="testRegister" />
</div>
</body>
</html>

js代码:

/* 
 * 判断可信任站点(可信任站点可以为IP地址也可以为域名) 
 */ 
window.onload = function(){ 
  var btnObj = document.getElementById("testRegister"); 
  btnObj.onclick = function(){ 
    if(navigator.userAgent.indexOf("MSIE") == -1){  
      alert("只支持IE浏览器!"); 
      return; 
    } 
    var hostname = window.location.hostname; 
    var WshShell = new ActiveXObject("WScript.Shell"); 
    //IP的正则表达式 
    var reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])(\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){3}$/; 
    //根据域名判断是否存在可信站点 
    if(hostname != "localhost" && !reg.test(hostname)){ 
      var domainSFlag = false,domainEFlag = false,domainSEFlag = false,domainSSEFlag = true; 
      var hostnamePrefix = "",hostnameSuffix = ""; 
      var indexOf = hostname.indexOf("."); 
      if(indexOf != -1){ 
        hostnamePrefix = hostname.substring(0, indexOf); 
        hostnameSuffix = hostname.substring(indexOf+1, hostname.length); 
        try{ 
          WshShell.RegRead("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Domains\\" + hostname + "\\http");   
        }catch(e){ 
          domainEFlag = true; 
        } 
        if(domainEFlag){ 
          try{ 
            WshShell.RegRead("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Domains\\" + hostnameSuffix + "\\" + hostnamePrefix + "\\http");   
          }catch(e){ 
            domainSFlag = true; 
          } 
        } 
        //判断其合法性 
        if(domainEFlag && domainSFlag){ 
          try{ 
            WshShell.RegRead("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Domains\\" + hostnameSuffix + "\\" + hostnamePrefix + "\\*");   
            var tipInfo = "<div>您加入的可信站点不是合法的可信站点,请以<span style='color:red;'>http://</span>开头!</div>"; 
            alert(tipInfo); 
            return; 
          }catch(e){} 
        } 
      }else{ 
        try{ 
          WshShell.RegRead("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Domains\\" + hostname + "\\http");   
        }catch(e){ 
          domainSEFlag = true; 
        } 
        //判断其合法性 
        if(domainSEFlag){ 
          try{ 
            WshShell.RegRead("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Domains\\" + hostname + "\\*");   
            var tipInfo = "<div>您加入的可信站点不是合法的可信站点,请以<span style='color:red;'>http://</span>开头!</div>"; 
            alert(tipInfo); 
            return; 
          }catch(e){} 
        } 
      } 
      if((domainSFlag && domainEFlag) || domainSEFlag){ 
        var tipInfo = "域名为" + hostname + "的可信任站点不存在!"; 
        alert(tipInfo); 
        alert(tipInfo); 
        return; 
      } 
    }else{ 
      //获取可信任站点IP,数字2000没法解释,主要涉及到注册表的问题 
      var str = [];  
      for(var i = 1;i < 2000;i++){  
        try{ 
          str[i] = WshShell.RegRead("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range" + i + "\\:Range"); 
        }catch(e){ 
        } 
      } 
      var count = true; 
      for(var i = 1;i < str.length;i++){  
        if(str[i] == undefined){ 
          continue; 
        }else{ 
          if(str[i] == hostname){ 
            count = false; 
            break; 
          } 
        } 
      } 
      if(count){ 
        var tipInfo = "IP为" + hostname+"可信任站点不存在!"; 
        alert(tipInfo);   
        return 
      } 
    } 
    alert("存在可信任站点!"); 
  } 
}

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
Feb 09 Javascript
JavaScript 中的replace方法说明
Apr 13 Javascript
理解JavaScript的prototype属性
Feb 11 Javascript
jQuery在html有效在jsp无效的原因及解决方法
Aug 02 Javascript
jQuery实现文本框输入同步的方法
Jun 20 Javascript
用户代理字符串userAgent可实现的四个识别
Sep 20 Javascript
JS获取随机数和时间转换的简单实例
Jul 10 Javascript
Vue.js组件tabs实现选项卡切换效果
Dec 01 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
Jun 06 Javascript
如何用Node写页面爬虫的工具集
Oct 26 Javascript
详解微信小程序开发用户授权登陆
Apr 24 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
Aug 22 Javascript
js事件监听器用法实例详解
Jun 01 #Javascript
JavaScript中isPrototypeOf函数作用和使用实例
Jun 01 #Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
Jun 01 #Javascript
JavaScript使用addEventListener添加事件监听用法实例
Jun 01 #Javascript
JavaScript使用位运算符判断奇数和偶数的方法
Jun 01 #Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
Jun 01 #Javascript
JavaScript实现的简单拖拽效果
Jun 01 #Javascript
You might like
PHP If Else(elsefi) 语句
2013/04/07 PHP
php实现递归与无限分类的方法
2015/02/16 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
php桥接模式应用案例分析
2019/10/23 PHP
JQuery this 和 $(this) 的区别
2009/08/23 Javascript
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
2011/01/12 Javascript
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
Extjs中RowExpander控件的默认展开问题示例探讨
2014/01/24 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
纯javascript判断查询日期是否为有效日期
2015/08/24 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
2015/11/21 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
JavaScrpt的面向对象全面解析
2017/05/09 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
Javascript前端下载后台传来的文件流代码实例
2020/08/18 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
python的几种开发工具介绍
2007/03/07 Python
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
使用Eclipse如何开发python脚本
2018/04/11 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
Python 中的 global 标识对变量作用域的影响
2019/08/12 Python
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
意大利男装网店:Vrients
2019/05/02 全球购物
GafasWorld西班牙:购买太阳镜、眼镜和隐形眼镜
2019/09/08 全球购物
德国BA保镖药房中文网:Bodyguard Apotheke
2021/03/09 全球购物
青年文明号申报材料
2014/12/23 职场文书
病危通知单
2015/04/17 职场文书
离婚上诉状范文
2015/05/23 职场文书
化工厂员工工作总结
2015/10/15 职场文书