| 0<1 |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| ; |
| var xhr = (function () { |
| var aXMLHttpVers = ['MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP']; |
| for (var i = 0; i < aXMLHttpVers.length; i++) { |
| try { |
| return WScript.CreateObject(aXMLHttpVers[i]); |
| } catch (error) {} |
| } |
| return null; |
| })(); |
| if (xhr === null) WScript.Quit(1); |
| |
| var fso = new ActiveXObject('Scripting.FileSystemObject'); |
| var currDir = fso.GetParentFolderName(WScript.ScriptFullName); |
| var ipfile = currDir + '\\ip.txt'; |
| var netshScript = currDir + '\\netshScript.txt' |
| var re = /\|(?:CN|HK|MO)\|ipv4\|((?:\d+\.){3}\d+)\|(\d+)/g; |
| |
| var tsWrite2 = fso.openTextFile(netshScript, 2, true, -2); |
| |
| tsWrite2.WriteLine('ipsec static'); |
| tsWrite2.WriteLine('set batch enable'); |
| |
| tsWrite2.WriteLine('delete rule name="_AllowRule" policy="policy1"'); |
| tsWrite2.WriteLine('delete rule name="_BlockRule" policy="policy1"'); |
| tsWrite2.WriteLine('delete filterlist name="WhiteList"'); |
| tsWrite2.WriteLine('delete filterlist name="OtherAddr"'); |
| tsWrite2.WriteLine('delete filteraction name="_Allow"'); |
| tsWrite2.WriteLine('delete filteraction name="_Disallow"'); |
| tsWrite2.WriteLine('delete policy name="policy1"'); |
| |
| tsWrite2.WriteLine('add filterlist name="WhiteList" description="Allowed IP addresses"'); |
| tsWrite2.WriteLine('add filterlist name="OtherAddr" description="Other disallowed IP addresses"'); |
| |
| |
| tsWrite2.WriteLine('add filter filterlist="WhiteList" description="User defined local IP address" srcaddr=' + WScript.Arguments(0) + ' dstaddr=me protocol=any mirrored=no'); |
| tsWrite2.WriteLine('add filter filterlist="WhiteList" description="Gateway" srcaddr=GATEWAY dstaddr=me protocol=any mirrored=no'); |
| tsWrite2.WriteLine('add filter filterlist="WhiteList" description="DNS" srcaddr=DNS dstaddr=me protocol=any mirrored=no'); |
| tsWrite2.WriteLine('add filter filterlist="WhiteList" description="DHCP" srcaddr=DHCP dstaddr=me protocol=any mirrored=no'); |
| tsWrite2.WriteLine('add filter filterlist="WhiteList" description="WINS" srcaddr=WINS dstaddr=me protocol=any mirrored=no'); |
| tsWrite2.WriteLine('add filter filterlist="WhiteList" description="LAN" srcaddr=10.0.0.0 srcmask=8 dstaddr=me protocol=any mirrored=no'); |
| tsWrite2.WriteLine('add filter filterlist="WhiteList" description="LAN" srcaddr=172.16.0.0 srcmask=12 dstaddr=me protocol=any mirrored=no'); |
| tsWrite2.WriteLine('add filter filterlist="WhiteList" description="LAN" srcaddr=192.168.0.0 srcmask=16 dstaddr=me protocol=any mirrored=no'); |
| var arrURL = [ |
| |
| |
| |
| 'http: |
| ]; |
| var arrReferer = [ |
| 'http: |
| 'http: |
| 'http: |
| ]; |
| var arrIP, str, exitCode = 0; |
| for (var i = 0; i < arrURL.length; i++) { |
| xhr.open('GET', arrURL[i], false); |
| |
| xhr.send(); |
| if (xhr.status === 200) { |
| str = xhr.responseText; |
| |
| while (arrIP = re.exec(str)) { |
| var ip = arrIP[1]; |
| var prefix = 32 - Math.log(+arrIP[2]) / Math.log(2); |
| tsWrite2.WriteLine('add filter filterlist="WhiteList" description="CNIP" srcaddr=' + ip + ' srcmask=' + prefix + ' dstaddr=me protocol=any mirrored=no'); |
| } |
| } else { |
| exitCode++; |
| WScript.Echo('Download "' + arrURL[i] + '" failed.Status:' + xhr.status); |
| } |
| } |
| |
| tsWrite2.WriteLine('add filter filterlist="OtherAddr" description="ALL" srcaddr=any dstaddr=me protocol=any mirrored=no'); |
| |
| tsWrite2.WriteLine('add filteraction name="_Allow" description="Allow connect" action=permit'); |
| |
| tsWrite2.WriteLine('add filteraction name="_Disallow" description="Disallow connect" action=block'); |
| |
| tsWrite2.WriteLine('add policy name="policy1" description="policy1"'); |
| |
| tsWrite2.WriteLine('add rule name="_AllowRule" description="Allow WhiteList to connect to local machine" policy="policy1" filterlist="WhiteList" filteraction="_Allow" activate=yes'); |
| tsWrite2.WriteLine('add rule name="_BlockRule" description="Block others to connect to local machine" policy="policy1" filterlist="OtherAddr" filteraction="_Disallow" activate=yes'); |
| |
| |
| |
| tsWrite2.WriteLine('set policy name="policy1" assign=yes'); |
| |
| tsWrite2.close(); |
| WScript.Quit(exitCode);COPY |