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获得CheckBoxList选中的数量
Oct 27 Javascript
js判断输入是否为数字的具体实例
Aug 03 Javascript
JQuery中使用ajax传输超大数据的解决方法
Jul 14 Javascript
jquery实现textarea 高度自适应
Mar 11 Javascript
Express之get,pos请求参数的获取
May 02 Javascript
JS实现的四级密码强度检测功能示例
May 11 Javascript
react native仿微信PopupWindow效果的实例代码
Aug 07 Javascript
three.js中文文档学习之创建场景
Nov 20 Javascript
vue+iview写个弹框的示例代码
Dec 05 Javascript
详解Immutable及 React 中实践
Mar 01 Javascript
微信小程序使用swiper组件实现类3D轮播图
Aug 29 Javascript
浅谈React之状态(State)
Sep 19 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 cookis创建实现代码
2009/03/16 PHP
php生成二维码的几种方式整理及使用实例
2013/06/03 PHP
PHP学习笔记(一) 简单了解PHP
2014/08/04 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
2016/07/21 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
2017/03/25 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
表单内同名元素的控制
2006/11/22 Javascript
jQuery 连续列表实现代码
2009/12/21 Javascript
jQuery对象[0]是什么含义?
2010/07/31 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
vue实现折线图 可按时间查询
2020/08/21 Javascript
pandas数据集的端到端处理
2019/02/18 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
python3调用windows dos命令的例子
2019/08/14 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
CSS3实现水平居中、垂直居中、水平垂直居中的实例代码
2020/02/27 HTML / CSS
Styleonme中文网:韩国高档人气品牌
2017/06/21 全球购物
Marc Jacobs官方网站:美国奢侈品牌
2017/08/29 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
大专毕业生自我评价分享
2013/11/10 职场文书
美发店5.1活动方案
2014/01/24 职场文书
国际贸易专业个人鉴定
2014/02/22 职场文书
党的群众路线教育实践活动教师自我剖析材料
2014/10/09 职场文书
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
2015年学校图书室工作总结
2015/05/19 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python
基于JavaScript实现省市联动效果
2021/06/22 Javascript
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL
Python中文分词库jieba(结巴分词)详细使用介绍
2022/04/07 Python