Skip to content

Instantly share code, notes, and snippets.

@likev
Last active January 19, 2024 12:46
Show Gist options
  • Save likev/7c26cec0103b3187ddcb793f94ae593c to your computer and use it in GitHub Desktop.
Save likev/7c26cec0103b3187ddcb793f94ae593c to your computer and use it in GitHub Desktop.
find quickest doh servers from list
//the list is created from https://github.com/curl/curl/wiki/DNS-over-HTTPS#publicly-available-servers
let dohs = ["https://adguard.abd.ong/dns-query",
"https://dns.abdullahabas.de/dns-query",
"https://abel.waringer-atg.de/dns-query",
"https://adl.adfilter.net/dns-query",
"https://per.adfilter.net/dns-query",
"https://syd.adfilter.net/dns-query",
"https://dns.adguard-dns.com/dns-query",
"https://family.adguard-dns.com/dns-query",
"https://unfiltered.adguard-dns.com/dns-query",
"https://dns.adrianlam.com/dns-query",
"https://dns.aerro.in/dns-query",
"https://blitz.ahadns.com",
"https://blitz.ahadns.com/1:1",
"https://doh.nl.ahadns.net/dns-query",
"https://dnsnl.alekberg.net/dns-query",
"https://dnsse.alekberg.net/dns-query",
"https://dnsnl-noads.alekberg.net/dns-query",
"https://dnsse-noads.alekberg.net/dns-query",
"https://dns.alidns.com/dns-query",
"https://mailer.amlegion.org/dns-query",
"https://dns.andrewnw.xyz/dns-query",
"https://dns.aa.net.uk/dns-query",
"https://secure.anudeep.me/dns-query",
"https://noads.api.org.pl/dns-query",
"https://dns.aquilenet.fr/dns-query",
"https://dns.ares-taiwan.com/dns-query",
"https://dns.artikel10.org/dns-query",
"https://dns.b612.me/dns-query",
"https://dns.atsilva.link/dns-query",
"https://secure.avastdns.com/dns-query",
"https://awan.ftp.sh/dns-query",
"https://awan.ftp.sh/no-vice",
"https://awan.ftp.sh/noporn-cl",
"https://awan.ftp.sh/unblocked",
"https://pihole.aws.ketan.dev/dns-query",
"https://doh.azoris.ovh/dns-query",
"https://sg-dns1.bancuh.com/dns-query",
"https://fr-dns1.bancuh.com/dns-query",
"https://dns.bitdefender.net/dns-query",
"https://dns.blaze-sk.ru/dns-query",
"https://dns.blokada.org/dns-query",
"https://adguard.bonis.de/dns-query",
"https://adguard.bonsirven.eu/dns-query",
"https://doh.bortzmeyer.fr",
"https://dns.brahma.world/dns-query",
"https://blast.broadband.ink/dns-query",
"https://doh.bt.com",
"https://stratus.bugz.fr/dns-query",
"https://doh1.b-cdn.net/dns-query",
"https://www.c-dns.com/dns-query",
"https://callies-online.site/dns-query",
"https://doh.aaaab3n.moe/dns-query-114514",
"https://dns.carson-family.com/dns-query",
"https://dns.carter.me/dns-query",
"https://sriedmueadguard.casa/dns-query",
"https://catdns.org/dns-query",
"https://dns.chadeyron.fr/dns-query",
"https://dns.charraud.eu/dns-query",
"https://doh-01.spectrum.com/dns-query",
"https://doh-02.spectrum.com/dns-query",
"https://dns.chenu.ch/dns-query",
"https://dns.chocolatezz.xyz/dns-query",
"https://www.chungocoai.name.vn/dns-query",
"https://private.canadianshield.cira.ca/dns-query",
"https://protected.canadianshield.cira.ca/dns-query",
"https://family.canadianshield.cira.ca/dns-query",
"https://dns.circl.lu/dns-query",
"https://doh.opendns.com/dns-query",
"https://doh.familyshield.opendns.com/dns-query",
"https://doh.umbrella.com/dns-query",
"https://dns.clanto.cloud/dns-query",
"https://doh.cleanbrowsing.org/doh/family-filter/",
"https://doh.cleanbrowsing.org/doh/adult-filter/",
"https://doh.cleanbrowsing.org/doh/security-filter/",
"https://cloud.198.games/dns-query",
"https://dns.cloud.ionutl.ro/dns-query",
"https://dns.cloud88.com.au/dns-query",
"https://cloudflare-dns.com/dns-query",
"https://mozilla.cloudflare-dns.com/dns-query",
"https://security.cloudflare-dns.com/dns-query",
"https://family.cloudflare-dns.com/dns-query",
"https://dns64.cloudflare-dns.com/dns-query",
"https://dns.cloudseriousshit.com/dns-query",
"https://dns-fr-psv1.cloudsides.com/dns-query",
"https://block.coconut.id/dns-query",
"https://freedns.controld.com/p0",
"https://freedns.controld.com/p1",
"https://freedns.controld.com/p2",
"https://freedns.controld.com/p3",
"https://freedns.controld.com/family",
"https://freedns.controld.com/uncensored",
"https://freedns.controld.com/x-oisd",
"https://freedns.controld.com/x-oisd-basic",
"https://freedns.controld.com/x-stevenblack",
"https://freedns.controld.com/x-devdan",
"https://freedns.controld.com/x-1hosts-mini",
"https://freedns.controld.com/x-1hosts-lite",
"https://freedns.controld.com/x-1hosts-pro",
"https://freedns.controld.com/x-hagezi-light",
"https://freedns.controld.com/x-hagezi-normal",
"https://freedns.controld.com/x-hagezi-pro",
"https://freedns.controld.com/x-hagezi-proplus",
"https://freedns.controld.com/x-hagezi-ultimate",
"https://freedns.controld.com/x-hagezi-tif",
"https://freedns.controld.com/x-goodbyeads",
"https://freedns.controld.com/x-adguard",
"https://cubedns.com/dns-query",
"https://qual.cuprum.ru/dns-query",
"https://nanopi.cybergroove.net/dns-query",
"https://cynntex.fun/dns-query",
"https://dns.cynthialabs.net/dns-query",
"https://odvr.nic.cz/dns-query",
"https://dns.daw.dev/dns-query",
"https://ns.00dani.me/dns-query",
"https://darkness.is.my.waifu.cz/dns-query",
"https://mail.data.haus/dns-query",
"https://doh.datahata.by/dns-query",
"https://dns.digitale-gesellschaft.ch/dns-query",
"https://doh.disconnect.app/dns-query",
"https://dns-doh.dnsforfamily.com/dns-query",
"https://dns-free.link/dns-query",
"https://dns-free.link/family",
"https://dot.dns-ga.de/dns-query",
"https://dns.digitalsize.net/dns-query",
"https://dns.expert/dns-query",
"https://doh.dns.sb/dns-query",
"https://doh.sb/dns-query",
"https://open.dns0.eu",
"https://dns0.eu",
"https://zero.dns0.eu",
"https://kids.dns0.eu",
"https://doh.dns4all.eu/dns-query",
"https://abe01.dnscry.pt/dns-query",
"https://ams01.dnscry.pt/dns-query",
"https://ams02.dnscry.pt/dns-query",
"https://atl01.dnscry.pt/dns-query",
"https://ycg01.dnscry.pt/dns-query",
"https://ord01.dnscry.pt/dns-query",
"https://coe01.dnscry.pt/dns-query",
"https://cvt01.dnscry.pt/dns-query",
"https://dfw01.dnscry.pt/dns-query",
"https://dtw01.dnscry.pt/dns-query",
"https://rdu01.dnscry.pt/dns-query",
"https://dus01.dnscry.pt/dns-query",
"https://fra01.dnscry.pt/dns-query",
"https://hkg01.dnscry.pt/dns-query",
"https://jnb01.dnscry.pt/dns-query",
"https://las01.dnscry.pt/dns-query",
"https://llk01.dnscry.pt/dns-query",
"https://lon01.dnscry.pt/dns-query",
"https://lax01.dnscry.pt/dns-query",
"https://lax02.dnscry.pt/dns-query",
"https://mia01.dnscry.pt/dns-query",
"https://muc01.dnscry.pt/dns-query",
"https://naw01.dnscry.pt/dns-query",
"https://nyc01.dnscry.pt/dns-query",
"https://phl01.dnscry.pt/dns-query",
"https://phx01.dnscry.pt/dns-query",
"https://pdx01.dnscry.pt/dns-query",
"https://slc01.dnscry.pt/dns-query",
"https://trf01.dnscry.pt/dns-query",
"https://sin01.dnscry.pt/dns-query",
"https://sof01.dnscry.pt/dns-query",
"https://geg01.dnscry.pt/dns-query",
"https://sto01.dnscry.pt/dns-query",
"https://tll01.dnscry.pt/dns-query",
"https://tpa01.dnscry.pt/dns-query",
"https://zal01.dnscry.pt/dns-query",
"https://waw02.dnscry.pt/dns-query",
"https://dnsforge.de/dns-query",
"https://dns.dnshome.de/dns-query",
"https://dnslow.me/dns-query",
"https://dns.pub/dns-query",
"https://dns.dnssilo.top/dns-query",
"https://dns.dnswarden.com/adblock",
"https://dns.dnswarden.com/uncensored",
"https://dns.dnswarden.com/adultfilter",
"https://dns.doh.best/dns-query",
"https://takhtakh.domyah.net/dns-query",
"https://doh.dscloud.me/dns-query",
"https://dukun.de/dns-query",
"https://doh.apad.pro/dns-query",
"https://edgy-dns.com/dns-query",
"https://dns.henek.ovh/dns-query",
"https://eliatofani.ovh/dns-query",
"https://dns.emiliyan.com/dns-query",
"https://home.enjoymylife.net/dns-query",
"https://shield1.eranext.net/dns-query",
"https://dns.extrawdw.net/dns-query",
"https://jp1.f7b6h9.tk/dns-query",
"https://dns.f97.xyz/dns-query",
"https://rdns.faelix.net/",
"https://pdns.faelix.net/",
"https://dns.fancyorg.at/dns-query",
"https://ns0.fdn.fr/dns-query",
"https://ns1.fdn.fr/dns-query",
"https://fezgate.ovh/dns-query",
"https://ag.ff0x.ca/dns-query",
"https://doh.ffmuc.net/dns-query",
"https://dns01.flm9.net/dns-query",
"https://agh.fltn.us/dns-query",
"https://dash.flylcc.cc/dns-query",
"https://doh.applied-privacy.net/query",
"https://hkname.freecdn.one/dns-query",
"https://dns.froth.zone/dns-query",
"https://dns.fullaccesstointernet.jp.eu.org/dns-query",
"https://dns.furrydns.de/dns-query",
"https://dns.freyja.pw/dns-query",
"https://sdns22.gkonuralp.com/dns-query",
"https://dns.google/dns-query",
"https://dns64.dns.google/dns-query",
"https://8888.google/dns-query",
"https://cluster-0.gac.edu/dns-query",
"https://cluster-1.gac.edu/dns-query",
"https://dns.haboy.top/dns-query",
"https://resolver-eu.haringstad.com/dns-query",
"https://adguard.helpdesk38.ru/dns-query",
"https://ag.hostme.co.il/dns-query",
"https://dns.hostux.net/ads",
"https://dns.hugo0.moe/dns-query",
"https://dns.huizegunsing.nl",
"https://dns.hujiayucc.cn/dns-query",
"https://ads.hunga1k47.com/dns-query",
"https://doth.huque.com/dns-query",
"https://ordns.he.net/dns-query",
"https://dns.huseynov.work/dns-query",
"https://dns.huyhoangit.net/dns-query",
"https://ad.huyct.net/dns-query",
"https://vd.i81.ru/dns-query",
"https://portal.iddqd.uk/dns-query",
"https://ikarosalpha.xyz/dns-query",
"https://dns1.in-berlin.de/dns-query",
"https://dns.indybanipal.com/dns-query",
"https://doh.infracell.net/dns-query",
"https://www.inpssh.online/dns-query",
"https://inpssh.online/dns-query",
"https://qlf-doh.inria.fr/dns-query",
"https://doh.ibr.cs.tu-bs.de/dns-query",
"https://dns.interhub.cc/dns-query",
"https://dns.internal.hosmatic.com/dns-query",
"https://public.dns.iij.jp/dns-query",
"https://aqua.is.my.waifu.cz/dns-query",
"https://megumin.is.my.waifu.cz/dns-query",
"https://yunyun.is.my.waifu.cz/dns-query",
"https://dns.354688.xyz/dns-query",
"https://pdns.itxe.net/dns-query",
"https://ivnkn.xyz/dns-query",
"https://dns.jstockley.com/dns-query",
"https://jackyes.ovh/dns-query",
"https://jambi.undo.it/dns-query",
"https://dns.rhscz.eu/dns-query",
"https://adguard.jfchenier.ca/dns-query",
"https://adguardo.jimtay.uk/dns-query",
"https://dns.hahnjo.de/dns-query",
"https://jp.tiar.app/dns-query",
"https://jp.tiarap.org/dns-query",
"https://dns.jundev.org/dns-query",
"https://ad.justincounts.com/dns-query",
"https://dns.karl.one/dns-query",
"https://dns.kernel-error.de/dns-query",
"https://dns.kescher.at/dns-query",
"https://adguard.kiboko.it/dns-query",
"https://adguard.avdkishore.dev/dns-query",
"https://dns1.klcd.eu/dns-query",
"https://dns2.klcd.eu/dns-query",
"https://adguard.konikoni428.com/dns-query",
"https://dns.korzhyk.pp.ua/dns-query",
"https://xray.krnl.eu/dns-query",
"https://dns.skrzypiec.pl/dns-query",
"https://dns4.imkvq.com/dns-query",
"https://dns.l337.site/dns-query",
"https://doh.lacontrevoie.fr/dns-query",
"https://dns.lashes-brow.ru/dns-query",
"https://lastentarvike.fi/dns-query",
"https://eu1.dns.lavate.ch/dns-query",
"https://adblock.leenit.kr/dns-query",
"https://adguard.lege.despagne.net/dns-query",
"https://dns.lgprk.com/dns-query",
"https://doh.libredns.gr/dns-query",
"https://doh.libredns.gr/noads",
"https://lindung.pp.ua/dns-query",
"https://lindung.pp.ua/family",
"https://dns2.linzefeng.top/dns-query",
"https://dns.lista.my.id/dns-query",
"https://adguard.lista.my.id/dns-query",
"https://onic-doh.lista.my.id/dns-query",
"https://adguard.lista.my.id/dns-query/opennic",
"https://adguard.londonwebnerd.cloud/dns-query",
"https://doh.phdns1.lonet.org/dns-query",
"https://doh.phdns2.lonet.org/dns-query",
"https://doh.phdns3.lonet.org/dns-query",
"https://doh.phdns4.lonet.org/dns-query",
"https://doh.phdns5.lonet.org/dns-query",
"https://dns1.lothuscorp.com.br/dns-query",
"https://ns.lov.host/dns-query",
"https://dns.lvolland.fr/dns-query",
"https://adhome.maige.fun/dns-query",
"https://locaweb.moleniuk.com/dns-query",
"https://adguard.marto.si/dns-query",
"https://masters-of-cloud.de/dns-query",
"https://dns.mathewakhil.online/dns-query",
"https://adguard.mattiafenzi.uk/dns-query",
"https://home.wriedts.de/dns-query",
"https://www.maxfong.cc/dns-query",
"https://doh.max.net.id/dns-query",
"https://adguard.meddy94.de/dns-query",
"https://snoke.meganerd.nl/dns-query",
"https://www.memorialus.eu.org/dns-query",
"https://ns.mtsoln.com/dns-query",
"https://dns.mestdag.fr/dns-query",
"https://dns.mikrotikrumahan.my.id/dns-query",
"https://dns.milangeorge.com/dns-query",
"https://dns.milkpie.one/dns-query",
"https://minilla.store/dns-query",
"https://netcup.mismat.ch/dns-query",
"https://addns1.m-it.ro/dns-query",
"https://5g.o0o.re/dns-query",
"https://dns.mo0on15.com/dns-query",
"https://query.mobyds.com/dns-query",
"https://nue2.moderateinfra.net/dns-query",
"https://ps1.modr.club/dns-query",
"https://dns.molinero.dev/dns-query",
"https://naganohara-yoimiya.momokko.moe/dns-query",
"https://dns.mullvad.net/dns-query",
"https://adblock.dns.mullvad.net/dns-query",
"https://base.dns.mullvad.net/dns-query",
"https://extended.dns.mullvad.net/dns-query",
"https://all.dns.mullvad.net/dns-query",
"https://freedom.mydns.network/dns-query",
"https://paranoia.mydns.network/dns-query",
"https://adblock.mydns.network/dns-query",
"https://family.mydns.network/dns-query",
"https://blackhole.myon.lu/dns-query",
"https://dns.narl.app/dns-query",
"https://dns.ndo.dev/dns-query",
"https://netcat.one/dns-query",
"https://doh.luigi.nexific.it/dns-query",
"https://dns.nextdns.io",
"https://dns.nhtsky.com/dns-query",
"https://doh.lv/dns-query",
"https://doh.nic.lv/dns-query",
"https://dns1.nielsdb.be/dns-query",
"https://doh.niyawe.de/dns-query",
"https://dns.njal.la/dns-query",
"https://resolver.noaddns.com/dns-query",
"https://pi1.node15.com/dns-query",
"https://1.dns.noridev.moe/dns-query",
"https://dns.novali.date/dns-query",
"https://agh.odvpn.ru/dns-query",
"https://dns.ofdoom.net/dns-query",
"https://adguard.oms-ctr.ru/dns-query",
"https://secure.onedns.cc/dns-query",
"https://ada.openbld.net/dns-query",
"https://ric.openbld.net/dns-query",
"https://fwgw.orangepipc.mywire.org/dns-query",
"https://dns.ours.luxe/dns-query",
"https://outdoorchair.us/dns-query",
"https://dns.ovpn.bond/dns-query",
"https://dns.paesa.es/dns-query",
"https://doh.gcp.pathofgrace.com/dns-query",
"https://dns.pernika.net/dns-query",
"https://darya.persiannit.net/dns-query",
"https://dns1.pietjacobs.be/dns-query",
"https://secure-dns.pleumkungz.com/dns-query",
"https://dns.pragmasec.nl/dns-query",
"https://orpi.privado.ovh/dns-query",
"https://www.pukanuragan.ru/dns-query",
"https://dns-privacy.puregeni.us/dns-query",
"https://ad.pyio.top/dns-query",
"https://doh.360.cn/dns-query",
"https://ns1.qquack.org/dns-query",
"https://dns.quad9.net/dns-query",
"https://quic.lol/dns-query",
"https://ant.dns.qwer.pw/dns-query",
"https://dog.dns.qwer.pw/dns-query",
"https://lion.dns.qwer.pw/dns-query",
"https://tiger.dns.qwer.pw/dns-query",
"https://frog.dns.qwer.pw/dns-query",
"https://resolver.r0cket.net/dns-query",
"https://inde.ragnvindr.org/dns-query",
"https://ns.ral9005.org/dns-query",
"https://emby.rasp.tv/dns-query",
"https://jp.ray0512.win/dns-query",
"https://la.ray0512.win/dns-query",
"https://kaitain.restena.lu/dns-query",
"https://dns.retakecs.com/dns-query",
"https://sky.rethinkdns.com/dns-query",
"https://sky.rethinkdns.com/1:IAAgAA==",
"https://doh.rezhajul.io/dns-query",
"https://resolver.rferee.dev/dns-query/",
"https://h.gjrick.tw/dns-query",
"https://dns.rin.sh/dns-query",
"https://dns.rotunneling.net/dns-query/public",
"https://agh-yz.russel053.com/dns-query",
"https://dns.sac.rebl.eu.org/dns-query",
"https://doh.safesurfer.io/dns-query",
"https://dns2.saferbfc.org/dns-query",
"https://safeservedns.com/dns-query",
"https://o.rsaikat.com/dns-query",
"https://dns.sarak.as/dns-query",
"https://dns.scarx.net/dns-query",
"https://dns.schlagheck.berlin/dns-query",
"https://dns.scuola.org/dns-query",
"https://privatnas.servebeer.com/dns-query",
"https://dns.sev.monster/dns-query",
"https://d2.shabi.icu/dns-query",
"https://free.shecan.ir/dns-query",
"https://dns.shecan.ir/dns-query",
"https://shijiu.asia/dns-query",
"https://ymjx.shimmerl.top/dns-query",
"https://adguard.shoupperuser.com/dns-query",
"https://dns.albony.xyz/dns-query",
"https://adguard.shutgaming.net/dns-query",
"https://adguard.shuting.idv.tw/dns-query",
"https://dns.silen.org/dns-query",
"https://dns.silentlybren.com/dns-query",
"https://dns.simplylinux.ch/dns-query",
"https://adg.siudzinski.net/dns-query",
"https://dns.skrep.eu/dns-query",
"https://dns.skrep.in/dns-query",
"https://dns.slinkyman.net/dns-query",
"https://clientdns3.softcom.net/dns-query",
"https://tokyodns.songnguyen.name.vn/dns-query",
"https://spacedns.org/dns-query",
"https://adguard.sparshbajaj.me/dns-query",
"https://adguard.sscw.win/dns-query",
"https://dns.sstomp.nl/dns-query",
"https://dns.startupstack.tech/dns-query",
"https://local.sufly.top/dns-query",
"https://sundalandia.pp.ua/dns-query",
"https://sundalandia.pp.ua/family",
"https://dns.superstefan.win/dns-query",
"https://dns.swin.pro/dns-query",
"https://dns.switch.ch/dns-query",
"https://dns.syaifullah.com/dns-query",
"https://doh.syshero.org/dns-query",
"https://vanced.sytes.net/dns-query",
"https://dns.t53.de/dns-query",
"https://filter.das.sch.id/dns-query",
"https://dns.telekom.de/dns-query",
"https://dns.thebuckners.org/dns-query",
"https://blocker.thethorsens.org/dns-query",
"https://doh.tiar.app/dns-query",
"https://doh.tiarap.org/dns-query",
"https://pwjbrhie.chicagocomputers.com.ar/dns-query",
"https://tienpham.id.vn/dns-query",
"https://timmes.nl/dns-query",
"https://dns.timvo.net/dns-query",
"https://dns.tls-data.de/dns-query",
"https://dot.tooli.ca/dns-query",
"https://dns.trust404.win/dns-query",
"https://dns.tryk.app/dns-query",
"https://dns.twnic.tw/dns-query",
"https://dns.txq.life/dns-query",
"https://ad.tzockt.beer/dns-query",
"https://resolver.unstoppable.io/dns-query",
"https://dns.unx.io/dns-query",
"https://uradoori.org/dns-query",
"https://urology.wiki/dns-query",
"https://doh.viatech.com.tw/dns-query",
"https://virga.pp.ua/dns-query",
"https://virga.pp.ua/porn",
"https://dns.vlo.cc/dns-query",
"https://geshido.vpn.geshido.ru/dns-query",
"https://dns.wahr.top/dns-query",
"https://dns.wang.art/dns-query",
"https://dns.wargan.io/dns-query",
"https://resov.wehao.net/dns-query",
"https://wikimedia-dns.org/dns-query",
"https://clearweb.woodbridge.club/dns-query",
"https://doh.xcom.pro/dns-query",
"https://v2.xx3210766.live/dns-query",
"https://common.dot.dns.yandex.net/dns-query",
"https://safe.dot.dns.yandex.net/dns-query",
"https://family.dot.dns.yandex.net/dns-query",
"https://yarp.lefolgoc.net/dns-query",
"https://ychen.gq/dns-query",
"https://dns.yyaan.com/dns-query",
"https://res.zijji.com/dns-query",
"https://ad.257053.xyz/dns-query",
"https://dns.4-the.win/dns-query",
"https://dns.52306.org/dns-query",
"https://dns.58jdl.com/dns-query",
"https://family.5ososea.com/dns-query",
"https://kids.5ososea.com/dns-query",
"https://dns.888654.xyz/dns-query",
"https://ibuki.cgnat.net/dns-query",
"https://doh-2.seby.io/dns-query"];
const http2 = require('http2');
const timeoutDuration = 100; // 1 seconds
function check_url(URL, verbose = false) {
let console = {
log: _ => { },
error: _ => { }
}
if (verbose) console = global.console;
let fnResolve, fnReject;
let myPromise = new Promise((resolve, reject) => {
fnResolve = resolve;
fnReject = reject;
});
const client = http2.connect(URL);//https://dns.alidns.com , https://dns.quad9.net
client.on('error', (err) => console.error('ClientHttp2Session error: ' + err));
const req = client.request({ ':path': '/dns-query?dns=AAABAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB' });
req.on('error', (err) => {
console.error('ClientHttp2Stream error: ' + err);
req.close(http2.constants.NGHTTP2_CANCEL);
fnReject('!!! ' + URL)
});
// Set a timeout on the request
req.setTimeout(timeoutDuration, () => {
console.error(`ClientHttp2Stream ${URL} timed out`);
req.destroy();
fnReject('--- ' + URL)
});
req.on('response', (headers, flags) => {
for (const name in headers) {
console.log(`${name}: ${headers[name]}`);
}
fnResolve(' ' + URL);
let data = '';
req.on('data', (chunk) => { data += chunk; });
req.on('end', () => {
console.log('ClientHttp2Stream Received response:', data);
});
});
req.on('close', (e) => {
console.log( 'ClientHttp2Stream is closed' )
client.close(); // Close the client session after receiving the response
})
return myPromise;
}
let dohs = ["https://dns.google/dns-query",
"https://cloudflare-dns.com/dns-query",
"https://dns.alidns.com/dns-query",
"https://dns.quad9.net/dns-query"];
/*
* check_next check doh[index], then doh[++index]...
* show:
* 0 show urls response within timeoutDuration
* 1 show urls response great than timeoutDuration
* 2 don't show urls, for debug
* verbose:
* true show verbose info for debug
* false(default) turn off debug info
*/
function check_next(index = 0, { show = 0, verbose = false } = {}) {
if (index >= dohs.length || index < 0) return;
check_url(dohs[index], verbose)
.then(URL => { if (0 === show) console.log(URL) })
.catch(error => { if (1 === show) console.log(error) })
.finally(() => {
//only check_next when last check is done
check_next(++index, { show, verbose })
});
}
check_next(0, { show: 0, verbose: false })
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment