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

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

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

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

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

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

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

具体测试代码如下:

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程序设计有所帮助。

(0)

相关推荐

  • JavaScript实现删除电脑的关机键

    纯属恶作剧(只对IE浏览器有效因为要调用ActiveX) <!-- E-mail:shyhero@outlook.com Author: dujianing 删除关机按钮 --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title></title> <script type="text/javascript"

  • js读取注册表的键值示例

    复制代码 代码如下: <span style="font-size:18px">try { var shell = new ActiveXObject("WScript.Shell"); --读取注册表 var key = shell.RegRead("HKEY_CURRENT_USER\\Software\\AC3Filter\\equalizer\\Linear scale\\eq_freq_0"); -- 删除注册表 shell

  • 用JavaScript和注册表脚本实现右键收藏Web页选中文本

    前两天在网上发现一个很好的站点,是用来做资料收藏的(http://wolf.360doc.com).    这个网站提供了这么一个功能,可以直接将你选中的文字收藏起来,当时觉得很神奇的.后来研究了一下,发现用JavaScript和注册表脚本就可以实现这样的功能.    右键收藏页面代码如下(我的收藏页面命名为rightClick.jsp): 复制代码 代码如下: <html>  <script LANGUAGE="JavaScript">  if (extern

  • JavaScript 注册表访问实现代码

    New Document function readRegedit(){ var obj = new ActiveXObject("WScript.Shell"); var s="HKLM\\SOFTWARE\\Microsoft\\MediaPlayer\\Installation Directory"; var sNic = obj.RegRead(s); alert(sNic); } [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

  • 使用js修改客户端注册表的方法

    复制代码 代码如下: try{                     var shell = new ActiveXObject("WScript.Shell"); //读注册表值var  key1  = shell.RegRead("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\eip"); //删除注册表项 shell.RegDelete("HKEY_CUR

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

    本文实例讲述了javascript判断并获取注册表中可信任站点的方法.分享给大家供大家参考.具体分析如下: 判断可信任站点,首先要在注册表中找到可信任站点在注册表中的位置,如下: (1)域名作为可信任站点在注册表中的位置: HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\ (2)IP作为可信任站点在注册表中的位置: HKCU\\Software\\Microsoft\\

  • 利用InstallShield获取注册表键值的脚本

    Use  nvType = REGDB_NUMBER;  szKey = "\\SYSTEM\\CurrentControlSet\\Servic  es\\{58ECC408-265E-4342-9DA4-70BF1796D81D}\\Parameters\\Tcpip";  szName = "EnableDHCP"  RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );  RegDBGetKeyvalueEx ( szKey,

  • jQuery获取table表中的td标签(实例讲解)

    首先我来介绍一下我遇到的问题 1.当有一个table表包含了<tr>标签,<td>标签,大致可以认为是这样的: <tr> <td> @scene.ID </td> <td> @scene.SceneName </td> <td> @scene.QRUrl </td> <td> @scene.LocalUrl </td> <td> <!--如果有图片,展示图片

  • C#获取注册表指定键值操作

    某些程序必须依赖指定运行环境.那么读取注册表来判断此电脑是否有执行环境是个很不错的办法.因为每个软件安装之后都会在注册表中注册对应的键值,并且有些键值是独一无二的. 那么首先就需要找到那个具体的独一无二的键值,以便程序在运行之前能够去读取以判断. 代码如下: class Program { private static string _sValue = string.Empty; static void Main(string[] args) { Console.WriteLine("请输入待查

  • 用vbs列出注册表中 Run 项中的所有项目

    问: 您好,脚本专家!如何列出注册表中 Run 项中的所有项目? -- JW 答: 您好,JW.如何列出注册表中 Run 项中的所有项目?坦白地讲,我们不打算告诉您.真的很抱歉.不是因为我们不喜欢您,而是因为我们认为我们有一个更好的答案给您.(如果我们错了,那好,我们只能说这不会是第一次.)  由于您对 Run 项感兴趣,因此我们假定您真正想知道的是如何找出哪些程序被配置为在每次 Windows 启动时自动运行.您一定可以从 Run 项中读取到该信息,不要对此产生怀疑.实际上,您可以从 Run 

  • PowerShell小技巧之查找获取注册表路径

    在先前的技巧中我们说明如何将一个PS内置的路径格式转化成一个实际路径.这里介绍了一个例子.这段代码递归从HKEY_CURRENT_USER获取所有包含"powershell"词缀的键(简单的替换查询词缀将能获得你想要查询的任何东西) 复制代码 代码如下: Get-ChildItem -Path HKCU:\ -Include *PowerShell* -Recurse -ErrorAction SilentlyContinue|Select-Object -Property *Path

  • 用vbscript得到注册表中是否存在某个值

    问: 嗨,Scripting Guy!如何知道远程计算机上的注册表中是否存在某个值? -- AL 答: 嗨,AL.完全披露时间:尽管我们叫做 Scripting Guy,但这并不表示我们了解有关脚本编写的一切事情.这个问题就是一个很好的例证.第一次看到这个问题时,我们认为:"好吧,WMI 中显然有某种 If Exists 方法可以实现这个目的."但当我们发现其中并没有这样的方法时,知道我们有多吃惊么?事实上,我们找不到任何可以检查注册表中是否存在某个值的方法.我们甚至--惭愧!--去查

  • 注册表中存储数据库链接字符串的方法

    数据库的链接字符串是用数据库开发所必须的信息,我们通过链接字符串连接数据库,并进行各种数据库操作.那么链接字符串的存到哪里好呢?这没有什么定论,Asp系统开发中,一般存在一个conn.asp包含文件中或者如果又是COM,可能还会封闭到COM中,.Net开发中,大多数都选择存在Web.conifg中,也有人存储在另外一个单独的文件中.那么本文提供的是把数据库链接信息存储到注册表中的方案.也许你要问为什么要存到注册表呢?我想最起码的好处是安全,注册表的访问权限很高,一般远程服务在没有得到管理员账号的

  • Powershell从注册表中查询默认MAPI客户端的例子

    当你通过类似Mailto:链接发送邮件,此时邮件客户端就是MAPI客户端.如果要找出到这个MAPI客户端在哪里,这里有个函数能从注册表中获得该信息. 复制代码 代码如下: functionGet-MAPIClient{    functionRemove-Argument    {      param      (        $CommandLine      ) $divider=''if ($CommandLine.StartsWith('"'))      {        $div

  • java正则表达式判断前端参数修改表中另一个字段的值

    前端传参,调用接口 将两个值都传给后端,做比较,符合条件,修改数据表中另一个字段值 init (id) { this.dataForm.id = id || 0 this.visible = true this.$nextTick(() => { this.$refs['dataForm'].resetFields() if (this.dataForm.id) { this.$http({ url: this.$http.adornUrl(`/这里是接口/${this.dataForm.id}

随机推荐