diff --git a/index.html b/index.html index 3da5b94..04db63f 100644 --- a/index.html +++ b/index.html @@ -8,8 +8,7 @@ - - +

Secure DNS profile creator

diff --git a/js/premades.js b/js/premades.js deleted file mode 100644 index b65cf8c..0000000 --- a/js/premades.js +++ /dev/null @@ -1,147 +0,0 @@ -function loadPremade() { - var provName = document.getElementById("provName"); - var checkDoH = document.getElementById("doh"); - var checkDoT = document.getElementById("dot"); - var dns1v4 = document.getElementById("dns1v4"); - var dns2v4 = document.getElementById("dns2v4"); - var dns1v6 = document.getElementById("dns1v6"); - var dns2v6 = document.getElementById("dns2v6"); - var serverUrl = document.getElementById("serverUrl"); - - switch(document.getElementById("premades").value) { - case "adguard-https": - provName.value = "AdGuard"; - checkDoH.checked = true; - dns1v4.value = "94.140.14.14"; - dns2v4.value = "94.140.15.15"; - dns1v6.value = "2a10:50c0::ad1:ff"; - dns2v6.value = "2a10:50c0::ad2:ff"; - serverUrl.value = "https://dns.adguard.com/dns-query"; - break; - case "alibaba-https": - provName.value = "Alibaba"; - checkDoH.checked = true; - dns1v4.value = "223.5.5.5"; - dns2v4.value = "223.6.6.6"; - dns1v6.value = "2400:3200::1"; - dns2v6.value = "2400:3200:baba::1"; - serverUrl.value = "https://dns.alidns.com/dns-query"; - break; - case "cloudflare-https": - provName.value = "Cloudflare"; - checkDoH.checked = true; - dns1v4.value = "1.1.1.1"; - dns2v4.value = "1.0.0.1"; - dns1v6.value = "2606:4700:4700::1111"; - dns2v6.value = "2606:4700:4700::1001"; - serverUrl.value = "https://cloudflare-dns.com/dns-query"; - break; - case "cloudflare-tls": - provName.value = "Cloudflare"; - checkDoT.checked = true; - dns1v4.value = "1.1.1.1"; - dns2v4.value = "1.0.0.1"; - dns1v6.value = "2606:4700:4700::1111"; - dns2v6.value = "2606:4700:4700::1001"; - serverUrl.value = "cloudflare-dns.com"; - break; - case "cloudflare-security-https": - provName.value = "Cloudflare Security"; - checkDoH.checked = true; - dns1v4.value = "1.1.1.2"; - dns2v4.value = "1.0.0.2"; - dns1v6.value = "2606:4700:4700::1112"; - dns2v6.value = "2606:4700:4700::1002"; - serverUrl.value = "https://security.cloudflare-dns.com/dns-query"; - break; - case "cloudflare-security-tls": - provName.value = "Cloudflare Security"; - checkDoT.checked = true; - dns1v4.value = "1.1.1.2"; - dns2v4.value = "1.0.0.2"; - dns1v6.value = "2606:4700:4700::1112"; - dns2v6.value = "2606:4700:4700::1002"; - serverUrl.value = "security.cloudflare-dns.com"; - break; - case "cloudflare-family-https": - provName.value = "Cloudflare Family"; - checkDoH.checked = true; - dns1v4.value = "1.1.1.3"; - dns2v4.value = "1.0.0.3"; - dns1v6.value = "2606:4700:4700::1113"; - dns2v6.value = "2606:4700:4700::1003"; - serverUrl.value = "https://family.cloudflare-dns.com/dns-query"; - break; - case "cloudflare-family-tls": - provName.value = "Cloudflare Family"; - checkDoT.checked = true; - dns1v4.value = "1.1.1.3"; - dns2v4.value = "1.0.0.3"; - dns1v6.value = "2606:4700:4700::1113"; - dns2v6.value = "2606:4700:4700::1003"; - serverUrl.value = "family.cloudflare-dns.com"; - break; - case "dnspod-https": - provName.value = "DNSPOD"; - checkDoH.checked = true; - dns1v4.value = "162.14.21.56"; - dns2v4.value = "162.14.21.178"; - dns1v6.value = ""; - dns2v6.value = ""; - serverUrl.value = "https://doh.pub/dns-query"; - break; - case "google-https": - provName.value = "Google"; - checkDoH.checked = true; - dns1v4.value = "8.8.8.8"; - dns2v4.value = "8.8.4.4"; - dns1v6.value = "2001:4860:4860::8888"; - dns2v6.value = "2001:4860:4860::8844"; - serverUrl.value = "https://dns.google/dns-query"; - break; - case "google-tls": - provName.value = "Google"; - checkDoT.checked = true; - dns1v4.value = "8.8.8.8"; - dns2v4.value = "8.8.4.4"; - dns1v6.value = "2001:4860:4860::8888"; - dns2v6.value = "2001:4860:4860::8844"; - serverUrl.value = "dns.google"; - break; - case "opendns-https": - provName.value = "OpenDNS"; - checkDoH.checked = true; - dns1v4.value = "208.67.220.220"; - dns2v4.value = "208.67.222.222"; - dns1v6.value = "2620:119:35::35"; - dns2v6.value = "2620:119:53::53"; - serverUrl.value = "https://doh.opendns.com/dns-query"; - break; - case "quad9-https": - provName.value = ""; - checkDoH.checked = true; - dns1v4.value = "9.9.9.9"; - dns2v4.value = "149.112.112.112"; - dns1v6.value = "2620:fe::fe"; - dns2v6.value = "2620:fe::9"; - serverUrl.value = "https://dns.quad9.net/dns-query"; - break; - case "quad9-tls": - provName.value = ""; - checkDoT.checked = true; - dns1v4.value = "9.9.9.9"; - dns2v4.value = "149.112.112.112"; - dns1v6.value = "2620:fe::fe"; - dns2v6.value = "2620:fe::9"; - serverUrl.value = "dns.quad9.net"; - break; - default: - provName.value = ""; - checkDoH.checked = true; - dns1v4.value = ""; - dns2v4.value = ""; - dns1v6.value = ""; - dns2v6.value = ""; - serverUrl.value = ""; - } -} \ No newline at end of file diff --git a/js/tool.js b/js/tool.js index 69f20b7..b00f048 100644 --- a/js/tool.js +++ b/js/tool.js @@ -113,4 +113,151 @@ function switchToHTTPS() { function switchToTLS() { document.getElementById("serverUrl").placeholder = "dot.example.com"; document.getElementById("dohdotServerLabel").innerHTML = "DoT server URL:"; +} +function loadPremade() { + var provName = document.getElementById("provName"); + var checkDoH = document.getElementById("doh"); + var checkDoT = document.getElementById("dot"); + var dns1v4 = document.getElementById("dns1v4"); + var dns2v4 = document.getElementById("dns2v4"); + var dns1v6 = document.getElementById("dns1v6"); + var dns2v6 = document.getElementById("dns2v6"); + var serverUrl = document.getElementById("serverUrl"); + + switch(document.getElementById("premades").value) { + case "adguard-https": + provName.value = "AdGuard"; + checkDoH.checked = true; + dns1v4.value = "94.140.14.14"; + dns2v4.value = "94.140.15.15"; + dns1v6.value = "2a10:50c0::ad1:ff"; + dns2v6.value = "2a10:50c0::ad2:ff"; + serverUrl.value = "https://dns.adguard.com/dns-query"; + break; + case "alibaba-https": + provName.value = "Alibaba"; + checkDoH.checked = true; + dns1v4.value = "223.5.5.5"; + dns2v4.value = "223.6.6.6"; + dns1v6.value = "2400:3200::1"; + dns2v6.value = "2400:3200:baba::1"; + serverUrl.value = "https://dns.alidns.com/dns-query"; + break; + case "cloudflare-https": + provName.value = "Cloudflare"; + checkDoH.checked = true; + dns1v4.value = "1.1.1.1"; + dns2v4.value = "1.0.0.1"; + dns1v6.value = "2606:4700:4700::1111"; + dns2v6.value = "2606:4700:4700::1001"; + serverUrl.value = "https://cloudflare-dns.com/dns-query"; + break; + case "cloudflare-tls": + provName.value = "Cloudflare"; + checkDoT.checked = true; + dns1v4.value = "1.1.1.1"; + dns2v4.value = "1.0.0.1"; + dns1v6.value = "2606:4700:4700::1111"; + dns2v6.value = "2606:4700:4700::1001"; + serverUrl.value = "cloudflare-dns.com"; + break; + case "cloudflare-security-https": + provName.value = "Cloudflare Security"; + checkDoH.checked = true; + dns1v4.value = "1.1.1.2"; + dns2v4.value = "1.0.0.2"; + dns1v6.value = "2606:4700:4700::1112"; + dns2v6.value = "2606:4700:4700::1002"; + serverUrl.value = "https://security.cloudflare-dns.com/dns-query"; + break; + case "cloudflare-security-tls": + provName.value = "Cloudflare Security"; + checkDoT.checked = true; + dns1v4.value = "1.1.1.2"; + dns2v4.value = "1.0.0.2"; + dns1v6.value = "2606:4700:4700::1112"; + dns2v6.value = "2606:4700:4700::1002"; + serverUrl.value = "security.cloudflare-dns.com"; + break; + case "cloudflare-family-https": + provName.value = "Cloudflare Family"; + checkDoH.checked = true; + dns1v4.value = "1.1.1.3"; + dns2v4.value = "1.0.0.3"; + dns1v6.value = "2606:4700:4700::1113"; + dns2v6.value = "2606:4700:4700::1003"; + serverUrl.value = "https://family.cloudflare-dns.com/dns-query"; + break; + case "cloudflare-family-tls": + provName.value = "Cloudflare Family"; + checkDoT.checked = true; + dns1v4.value = "1.1.1.3"; + dns2v4.value = "1.0.0.3"; + dns1v6.value = "2606:4700:4700::1113"; + dns2v6.value = "2606:4700:4700::1003"; + serverUrl.value = "family.cloudflare-dns.com"; + break; + case "dnspod-https": + provName.value = "DNSPOD"; + checkDoH.checked = true; + dns1v4.value = "162.14.21.56"; + dns2v4.value = "162.14.21.178"; + dns1v6.value = ""; + dns2v6.value = ""; + serverUrl.value = "https://doh.pub/dns-query"; + break; + case "google-https": + provName.value = "Google"; + checkDoH.checked = true; + dns1v4.value = "8.8.8.8"; + dns2v4.value = "8.8.4.4"; + dns1v6.value = "2001:4860:4860::8888"; + dns2v6.value = "2001:4860:4860::8844"; + serverUrl.value = "https://dns.google/dns-query"; + break; + case "google-tls": + provName.value = "Google"; + checkDoT.checked = true; + dns1v4.value = "8.8.8.8"; + dns2v4.value = "8.8.4.4"; + dns1v6.value = "2001:4860:4860::8888"; + dns2v6.value = "2001:4860:4860::8844"; + serverUrl.value = "dns.google"; + break; + case "opendns-https": + provName.value = "OpenDNS"; + checkDoH.checked = true; + dns1v4.value = "208.67.220.220"; + dns2v4.value = "208.67.222.222"; + dns1v6.value = "2620:119:35::35"; + dns2v6.value = "2620:119:53::53"; + serverUrl.value = "https://doh.opendns.com/dns-query"; + break; + case "quad9-https": + provName.value = ""; + checkDoH.checked = true; + dns1v4.value = "9.9.9.9"; + dns2v4.value = "149.112.112.112"; + dns1v6.value = "2620:fe::fe"; + dns2v6.value = "2620:fe::9"; + serverUrl.value = "https://dns.quad9.net/dns-query"; + break; + case "quad9-tls": + provName.value = ""; + checkDoT.checked = true; + dns1v4.value = "9.9.9.9"; + dns2v4.value = "149.112.112.112"; + dns1v6.value = "2620:fe::fe"; + dns2v6.value = "2620:fe::9"; + serverUrl.value = "dns.quad9.net"; + break; + default: + provName.value = ""; + checkDoH.checked = true; + dns1v4.value = ""; + dns2v4.value = ""; + dns1v6.value = ""; + dns2v6.value = ""; + serverUrl.value = ""; + } } \ No newline at end of file diff --git a/js/tool.min.js b/js/tool.min.js new file mode 100644 index 0000000..ee41262 --- /dev/null +++ b/js/tool.min.js @@ -0,0 +1 @@ +function getRegDNS(){var dns1v4=document.getElementById("dns1v4").value;var dns2v4=document.getElementById("dns2v4").value;var dns1v6=document.getElementById("dns1v6").value;var dns2v6=document.getElementById("dns2v6").value;var ip4format=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;var ip6format=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;var returnstring="ServerAddresses\n\n";var dnsOverride=false;if(ip6format.test(dns1v6)){console.log("61valid!");dnsOverride=true;returnstring+=""+dns1v6+"\n"}if(ip6format.test(dns2v6)){console.log("62valid!");dnsOverride=true;returnstring+=""+dns2v6+"\n"}if(ip4format.test(dns1v4)){console.log("41valid!");dnsOverride=true;returnstring+=""+dns1v4+"\n"}if(ip4format.test(dns2v4)){console.log("42valid!");dnsOverride=true;returnstring+=""+dns2v4+"\n"}if(dnsOverride){returnstring+="\n";return returnstring}else{return ""}}function saveDynamicDataToFile(){var encryption=document.getElementsByName('encryption');var encValue=null;var provName=document.getElementById("provName").value;for(var i=0,length=encryption.length;i\n";fileString+="\n";fileString+="\n";fileString+="\n";fileString+="PayloadContent\n";fileString+="\n";fileString+="\n";fileString+="DNSSettings\n";fileString+="\n";fileString+="DNSProtocol\n";fileString+=""+encValue+"\n";fileString+=getRegDNS();fileString+="ServerURL\n";fileString+=""+document.getElementById("serverUrl").value+"\n";fileString+="\n";fileString+="PayloadDescription\n";fileString+="Configures device to use "+provName+" Encrypted DNS over "+encValue+"\n";fileString+="PayloadDisplayName\n";fileString+=""+provName+" DNS over "+encValue+"\n";fileString+="PayloadIdentifier\n";fileString+="com.apple.dnsSettings.managed."+uuidv4()+"\n";fileString+="PayloadType\n";fileString+="com.apple.dnsSettings.managed\n";fileString+="PayloadUUID\n";fileString+=""+uuidv4()+"\n";fileString+="PayloadVersion\n";fileString+="1\n";fileString+="ProhibitDisablement\n";fileString+="\n";fileString+="\n";fileString+="\n";fileString+="PayloadDescription\n";fileString+="Adds "+provName+" Encrypted DNS over "+encValue+" to Big Sur and iOS 14 based systems\n";fileString+="PayloadDisplayName\n"+provName+" DNS over "+encValue+"\n";fileString+=""+provName+" DNS over "+encValue+"\n";fileString+="PayloadIdentifier\n";fileString+="com.notjakob.apple-dns\n";fileString+="PayloadRemovalDisallowed\n";fileString+="\n";fileString+="PayloadType\n";fileString+="Configuration\n";fileString+="PayloadUUID\n";fileString+=""+uuidv4()+"\n";fileString+="PayloadVersion\n";fileString+="1\n";fileString+="\n";fileString+="";var blob=new Blob([fileString],{type:"text/plain;charset=utf-8"});saveAs(blob,"dns.mobileconfig")}function switchToHTTPS(){document.getElementById("serverUrl").placeholder="https://example.com/query"+document.getElementById("serverUrl").value;document.getElementById("dohdotServerLabel").innerHTML="DoH server URL:"}function switchToTLS(){document.getElementById("serverUrl").placeholder="dot.example.com";document.getElementById("dohdotServerLabel").innerHTML="DoT server URL:"}function loadPremade(){var provName=document.getElementById("provName");var checkDoH=document.getElementById("doh");var checkDoT=document.getElementById("dot");var dns1v4=document.getElementById("dns1v4");var dns2v4=document.getElementById("dns2v4");var dns1v6=document.getElementById("dns1v6");var dns2v6=document.getElementById("dns2v6");var serverUrl=document.getElementById("serverUrl");switch(document.getElementById("premades").value){case "adguard-https":provName.value="AdGuard";checkDoH.checked=true;dns1v4.value="94.140.14.14";dns2v4.value="94.140.15.15";dns1v6.value="2a10:50c0::ad1:ff";dns2v6.value="2a10:50c0::ad2:ff";serverUrl.value="https://dns.adguard.com/dns-query";break;case "alibaba-https":provName.value="Alibaba";checkDoH.checked=true;dns1v4.value="223.5.5.5";dns2v4.value="223.6.6.6";dns1v6.value="2400:3200::1";dns2v6.value="2400:3200:baba::1";serverUrl.value="https://dns.alidns.com/dns-query";break;case "cloudflare-https":provName.value="Cloudflare";checkDoH.checked=true;dns1v4.value="1.1.1.1";dns2v4.value="1.0.0.1";dns1v6.value="2606:4700:4700::1111";dns2v6.value="2606:4700:4700::1001";serverUrl.value="https://cloudflare-dns.com/dns-query";break;case "cloudflare-tls":provName.value="Cloudflare";checkDoT.checked=true;dns1v4.value="1.1.1.1";dns2v4.value="1.0.0.1";dns1v6.value="2606:4700:4700::1111";dns2v6.value="2606:4700:4700::1001";serverUrl.value="cloudflare-dns.com";break;case "cloudflare-security-https":provName.value="Cloudflare Security";checkDoH.checked=true;dns1v4.value="1.1.1.2";dns2v4.value="1.0.0.2";dns1v6.value="2606:4700:4700::1112";dns2v6.value="2606:4700:4700::1002";serverUrl.value="https://security.cloudflare-dns.com/dns-query";break;case "cloudflare-security-tls":provName.value="Cloudflare Security";checkDoT.checked=true;dns1v4.value="1.1.1.2";dns2v4.value="1.0.0.2";dns1v6.value="2606:4700:4700::1112";dns2v6.value="2606:4700:4700::1002";serverUrl.value="security.cloudflare-dns.com";break;case "cloudflare-family-https":provName.value="Cloudflare Family";checkDoH.checked=true;dns1v4.value="1.1.1.3";dns2v4.value="1.0.0.3";dns1v6.value="2606:4700:4700::1113";dns2v6.value="2606:4700:4700::1003";serverUrl.value="https://family.cloudflare-dns.com/dns-query";break;case "cloudflare-family-tls":provName.value="Cloudflare Family";checkDoT.checked=true;dns1v4.value="1.1.1.3";dns2v4.value="1.0.0.3";dns1v6.value="2606:4700:4700::1113";dns2v6.value="2606:4700:4700::1003";serverUrl.value="family.cloudflare-dns.com";break;case "dnspod-https":provName.value="DNSPOD";checkDoH.checked=true;dns1v4.value="162.14.21.56";dns2v4.value="162.14.21.178";dns1v6.value="";dns2v6.value="";serverUrl.value="https://doh.pub/dns-query";break;case "google-https":provName.value="Google";checkDoH.checked=true;dns1v4.value="8.8.8.8";dns2v4.value="8.8.4.4";dns1v6.value="2001:4860:4860::8888";dns2v6.value="2001:4860:4860::8844";serverUrl.value="https://dns.google/dns-query";break;case "google-tls":provName.value="Google";checkDoT.checked=true;dns1v4.value="8.8.8.8";dns2v4.value="8.8.4.4";dns1v6.value="2001:4860:4860::8888";dns2v6.value="2001:4860:4860::8844";serverUrl.value="dns.google";break;case "opendns-https":provName.value="OpenDNS";checkDoH.checked=true;dns1v4.value="208.67.220.220";dns2v4.value="208.67.222.222";dns1v6.value="2620:119:35::35";dns2v6.value="2620:119:53::53";serverUrl.value="https://doh.opendns.com/dns-query";break;case "quad9-https":provName.value="";checkDoH.checked=true;dns1v4.value="9.9.9.9";dns2v4.value="149.112.112.112";dns1v6.value="2620:fe::fe";dns2v6.value="2620:fe::9";serverUrl.value="https://dns.quad9.net/dns-query";break;case "quad9-tls":provName.value="";checkDoT.checked=true;dns1v4.value="9.9.9.9";dns2v4.value="149.112.112.112";dns1v6.value="2620:fe::fe";dns2v6.value="2620:fe::9";serverUrl.value="dns.quad9.net";break;default:provName.value="";checkDoH.checked=true;dns1v4.value="";dns2v4.value="";dns1v6.value="";dns2v6.value="";serverUrl.value=""}} \ No newline at end of file