diff --git a/app/src/main/java/eu/kanade/tachiyomi/network/DohProviders.kt b/app/src/main/java/eu/kanade/tachiyomi/network/DohProviders.kt
index 9a783495c5..f5ab389d63 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/network/DohProviders.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/network/DohProviders.kt
@@ -13,6 +13,10 @@ const val PREF_DOH_CLOUDFLARE = 1
const val PREF_DOH_GOOGLE = 2
const val PREF_DOH_ADGUARD = 3
const val PREF_DOH_QUAD9 = 4
+const val PREF_DOH_ALIDNS = 5
+const val PREF_DOH_DNSPOD = 6
+const val PREF_DOH_360 = 7
+const val PREF_DOH_QUAD101 = 8
fun OkHttpClient.Builder.dohCloudflare() = dns(
DnsOverHttps.Builder().client(build())
@@ -68,3 +72,51 @@ fun OkHttpClient.Builder.dohQuad9() = dns(
)
.build(),
)
+
+fun OkHttpClient.Builder.dohAliDNS() = dns(
+ DnsOverHttps.Builder().client(build())
+ .url("https://dns.alidns.com/dns-query".toHttpUrl())
+ .bootstrapDnsHosts(
+ InetAddress.getByName("223.5.5.5"),
+ InetAddress.getByName("223.6.6.6"),
+ InetAddress.getByName("2400:3200::1"),
+ InetAddress.getByName("2400:3200:baba::1"),
+ )
+ .build(),
+)
+
+fun OkHttpClient.Builder.dohDNSPod() = dns(
+ DnsOverHttps.Builder().client(build())
+ .url("https://doh.pub/dns-query".toHttpUrl())
+ .bootstrapDnsHosts(
+ InetAddress.getByName("1.12.12.12"),
+ InetAddress.getByName("120.53.53.53"),
+ )
+ .build(),
+)
+
+fun OkHttpClient.Builder.doh360() = dns(
+ DnsOverHttps.Builder().client(build())
+ .url("https://doh.360.cn/dns-query".toHttpUrl())
+ .bootstrapDnsHosts(
+ InetAddress.getByName("101.226.4.6"),
+ InetAddress.getByName("218.30.118.6"),
+ InetAddress.getByName("123.125.81.6"),
+ InetAddress.getByName("140.207.198.6"),
+ InetAddress.getByName("180.163.249.75"),
+ InetAddress.getByName("101.199.113.208"),
+ InetAddress.getByName("36.99.170.86"),
+ )
+ .build(),
+)
+
+fun OkHttpClient.Builder.dohQuad101() = dns(
+ DnsOverHttps.Builder().client(build())
+ .url("https://dns.twnic.tw/dns-query".toHttpUrl())
+ .bootstrapDnsHosts(
+ InetAddress.getByName("101.101.101.101"),
+ InetAddress.getByName("2001:de4::101"),
+ InetAddress.getByName("2001:de4::102"),
+ )
+ .build(),
+)
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
index 05b2562692..07822be58f 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
@@ -27,9 +27,13 @@ import eu.kanade.tachiyomi.data.library.LibraryUpdateService.Target
import eu.kanade.tachiyomi.data.preference.PreferenceKeys
import eu.kanade.tachiyomi.extension.ShizukuInstaller
import eu.kanade.tachiyomi.network.NetworkHelper
+import eu.kanade.tachiyomi.network.PREF_DOH_360
import eu.kanade.tachiyomi.network.PREF_DOH_ADGUARD
+import eu.kanade.tachiyomi.network.PREF_DOH_ALIDNS
import eu.kanade.tachiyomi.network.PREF_DOH_CLOUDFLARE
+import eu.kanade.tachiyomi.network.PREF_DOH_DNSPOD
import eu.kanade.tachiyomi.network.PREF_DOH_GOOGLE
+import eu.kanade.tachiyomi.network.PREF_DOH_QUAD101
import eu.kanade.tachiyomi.network.PREF_DOH_QUAD9
import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.ui.base.controller.DialogController
@@ -240,6 +244,10 @@ class SettingsAdvancedController : SettingsController() {
R.string.google,
R.string.ad_guard,
R.string.quad9,
+ R.string.aliDNS,
+ R.string.dnsPod,
+ R.string.dns_360,
+ R.string.quad_101,
)
entryValues = listOf(
-1,
@@ -247,6 +255,10 @@ class SettingsAdvancedController : SettingsController() {
PREF_DOH_GOOGLE,
PREF_DOH_ADGUARD,
PREF_DOH_QUAD9,
+ PREF_DOH_ALIDNS,
+ PREF_DOH_DNSPOD,
+ PREF_DOH_360,
+ PREF_DOH_QUAD101,
)
defaultValue = -1
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 456984da59..331ceffbc1 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -813,6 +813,10 @@
Google
AdGuard
Quad9
+ AliDNS
+ DNSPod
+ 360
+ Quad 101
Requires app restart to take effect
Used: %1$s