[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. 0<1/*,:
  2. @echo off
  3. REM 脚本用于创建IPSec安全策略,阻止国外IP访问本地机器,必须以管理员身份运行
  4. REM 创建netsh Script
  5. cscript -nologo -e:jscript %0
  6. REM 执行netsh Script
  7. netsh -f "%~dp0netshScript.txt"
  8. pause
  9. exit /b
  10. */
  11. ;
  12. var xhr = (function () {
  13.   var aXMLHttpVers = ['MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
  14.   for (var i = 0; i < aXMLHttpVers.length; i++) {
  15.     try {
  16.       return WScript.CreateObject(aXMLHttpVers[i]);
  17.     } catch (error) {}
  18.   }
  19.   return null;
  20. })();
  21. if (xhr === null) WScript.Quit(1);
  22. var wshell = new ActiveXObject('WScript.Shell');
  23. var fso = new ActiveXObject('Scripting.FileSystemObject');
  24. var currDir = fso.GetParentFolderName(WScript.ScriptFullName);
  25. var ipfile = currDir + '\\ip.txt';
  26. var netshScript = currDir + '\\netshScript.txt'
  27. xhr.onReadystateChange = function () {
  28.   if (xhr.readyState == 4) {
  29.     var re = /\|(?:CN|HK|MO)\|ipv4\|((?:\d+\.){3}\d+)\|(\d+)/g;
  30.     var str = xhr.responseText;
  31.     var arrIP;
  32.     var tsWrite1 = fso.openTextFile(ipfile, 2, true, -2);
  33.     var tsWrite2 = fso.openTextFile(netshScript, 2, true, -2);
  34.     // initialize netshScript.txt
  35.     tsWrite2.WriteLine('ipsec static');
  36.     tsWrite2.WriteLine('set batch enable');
  37.     // delete old policy policy1
  38.     tsWrite2.WriteLine('delete policy name="policy1"');
  39.     // add filterlist
  40.     tsWrite2.WriteLine('add filterlist name="白名单" description="允许访问本地服务器的IP列表"');
  41.     tsWrite2.WriteLine('add filterlist name="所有地址" description="所有IP列表"');
  42.     // 更新IP列表, netsh脚本 netshScript.txt
  43.     // add filters to filterlist 白名单
  44.     while (arrIP = re.exec(str)) {
  45.       var ip = arrIP[1];
  46.       var prefix = 32 - Math.log(+arrIP[2]) / Math.log(2);
  47.       tsWrite1.WriteLine(ip + '/' + prefix);
  48.       tsWrite2.WriteLine('add filter filterlist="白名单" description="CNIP" srcaddr=' + ip + ' srcmask=' + prefix + ' dstaddr=me protocol=any mirrored=yes');
  49.     }
  50.     // add filters to filterlist 所有地址
  51.     tsWrite2.WriteLine('add filter filterlist="所有地址" description="ALL" srcaddr=any dstaddr=me protocol=any mirrored=yes');
  52.     // add filteraction permit
  53.     tsWrite2.WriteLine('add filteraction name="允许" description="允许访问" action=permit');
  54.     // add filteraction block
  55.     tsWrite2.WriteLine('add filteraction name="阻止" description="禁止访问" action=block');
  56.     // add policy
  57.     tsWrite2.WriteLine('add policy name="policy1" description="policy1"');
  58.     // add rule
  59.     tsWrite2.WriteLine('add rule name="允许规则" description="允许白名单访问规则" policy="policy1" filterlist="白名单" filteraction="允许" activate=yes');
  60.     tsWrite2.WriteLine('add rule name="阻止规则" description="禁止所有IP访问规则" policy="policy1" filterlist="所有地址" filteraction="阻止" activate=yes');
  61.     // tsWrite2.WriteLine('delete filterlist name="白名单"'); //先删除原来的IP列表; filterlist被占用时无法被删除的
  62.     // tsWrite2.WriteLine('add filterlist name="白名单" description="允许访问本地服务器的IP列表"'); //再创建新的IP列表
  63.     // activate policy1
  64.     tsWrite2.WriteLine('set policy name="policy1" assign=yes');
  65.     tsWrite1.close();
  66.     tsWrite2.close();
  67.     WScript.Quit();
  68.   }
  69. };
  70. var url = 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest'; //更新IP地址库的来源网址
  71. xhr.open('GET', url, true);
  72. xhr.send();
  73. while (true) {
  74.   WScript.Sleep(100);
  75. }
复制代码
微信:flashercs
QQ:49908356

TOP

返回列表