Baru-baru ini semasa mengusahakan Arkib, saya mendapati diri saya perlu menyemak rekod DNS domain.
Latar belakang
Archival Pro membolehkan pengguna menunjuk domain tersuai di tapak Arkib. Untuk mendayakan https untuk tapak ini, kami menggunakan pengesah domain berasaskan rekod TXT untuk mengesahkan pemilikan sebelum mengeluarkan SSL. Untuk menjadikan proses ini lebih mudah, saya perlu menanyakan rekod untuk menyemak sama ada rekod CNAME dan TXT dikonfigurasikan dengan betul dan menunjukkan beberapa mesej berguna jika tidak.
Dalam persekitaran seperti node.js atau C ini agak mudah, kerana setiap OS mempunyai cache DNS setempat dan alat carian. Walau bagaimanapun, saya menjalankan ini dalam pekerja cloudflare, yang sebenarnya merupakan pengasing v8 dan oleh itu tidak mempunyai akses kepada sistem dns OS. Malah, walaupun dengan nodejs_compat dihidupkan, perpustakaan dns daripada stdlib node hanya akan mengembalikan objek kosong.
DNS-over-HTTPS
Setelah melakukan sedikit penyelidikan, saya menyedari bahawa DNS-over-HTTPS moden akan sesuai untuk masalah ini, dan mempunyai kegunaan di luar kes sempit saya. Walau bagaimanapun, saya tidak menyukai mana-mana perpustakaan di npm untuk kes penggunaan ini - apa yang saya mahukan ialah sesuatu yang lebih serupa dengan pustaka DNS nod, yang menghilangkan pelayan carian.
Cloudflare menawarkan penyelesaian DNS-over-HTTPs, yang boleh anda baca di sini: https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/
Kelemahan utama API ini ialah ia boleh menjadi agak legap kepada pengguna biasa - kod status dikembalikan sebagai nombor yang dipetakan kepada spesifikasi, dan format respons adalah dalam format Soalan dan Jawapan serta termasuk data berbutir yang, walaupun berguna, tetapi berlebihan untuk kegunaan kasual.
Pakej yang ringkas
Untuk memudahkan saya dan orang lain, saya menerbitkan cf-doh.
Ini ialah perpustakaan ringkas yang menjadikannya sangat mudah untuk menanyakan rekod daripada penyemak imbas, pekerja cloudflare atau mana-mana tempat lain yang dijalankan javascript. Ia bergantung pada pelaksanaan pengambilan asli, dan membenarkan menetapkan satu jika anda belum mempunyai satu, jadi jika anda mahu, anda juga boleh menjalankan dalam nod dengan pelaksanaan pengambilan whatwg yang diisi poli - namun jika anda berada dalam nod, anda juga akan mempunyai node:dns yang berkemungkinan seperti yang anda mahukan.
Selain membungkus panggilan ambil, pustaka ini menyediakan jenis penuh untuk keseluruhan spesifikasi, mengendalikan respons rentetan yang dipetik dan menukar ralat http dan respons status kepada pengecualian.
Penggunaan adalah mudah:
import { queryDNS } from "cf-doh"; const records = await queryDNS("_verification.jesseditson.com", "TXT"); records.forEach((r) => console.log(r));
Jika anda lebih suka nilai yang ditaip, anda juga boleh mengimport semua jenis rekod yang sah dan menggunakannya dan bukannya rentetan:
import { queryDNS, DNSRecordType } from "cf-doh"; const records = await queryDNS("_verification.jesseditson.com", DNSRecordType.TXT);
Jika anda ingin mengendalikan status selain daripada NoError, anda boleh menggunakan API peringkat rendah:
import { queryDNSRecords, DNSRecordType, DOHStatus, DOHStatusMessage } from "cf-doh"; const response = await queryDNSRecords("_verification.jesseditson.com", DNSRecordType.TXT); switch (response.status) { case DOHStatus.NoError: console.log("This record exists!"); break; case DOHStatus.NXDomain: console.log("Domain wasn't found"); break; default: console.log(DOHStatusMessage[response.status]); break; }
Untuk menambahkan ini pada projek anda, cuma jalankan npm install --save cf-doh. Jika anda ingin tahu tentang sumber atau permukaan API penuh, lihat repo:
https://github.com/jesseditson/cf-doh
Atas ialah kandungan terperinci cf-doh: cari rekod DNS daripada javascript frontend anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Aplikasi JavaScript di dunia nyata termasuk pengaturcaraan sisi pelayan, pembangunan aplikasi mudah alih dan Internet of Things Control: 1. Pengaturcaraan sisi pelayan direalisasikan melalui node.js, sesuai untuk pemprosesan permintaan serentak yang tinggi. 2. Pembangunan aplikasi mudah alih dijalankan melalui reaktnatif dan menyokong penggunaan silang platform. 3. Digunakan untuk kawalan peranti IoT melalui Perpustakaan Johnny-Five, sesuai untuk interaksi perkakasan.

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan

JavaScript adalah bahasa utama pembangunan web moden dan digunakan secara meluas untuk kepelbagaian dan fleksibiliti. 1) Pembangunan front-end: Membina laman web dinamik dan aplikasi satu halaman melalui operasi DOM dan kerangka moden (seperti React, Vue.js, sudut). 2) Pembangunan sisi pelayan: Node.js menggunakan model I/O yang tidak menyekat untuk mengendalikan aplikasi konkurensi tinggi dan masa nyata. 3) Pembangunan aplikasi mudah alih dan desktop: Pembangunan silang platform direalisasikan melalui reaktnatif dan elektron untuk meningkatkan kecekapan pembangunan.

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Python lebih sesuai untuk sains data dan pembelajaran mesin, manakala JavaScript lebih sesuai untuk pembangunan front-end dan penuh. 1. Python terkenal dengan sintaks ringkas dan ekosistem perpustakaan yang kaya, dan sesuai untuk analisis data dan pembangunan web. 2. JavaScript adalah teras pembangunan front-end. Node.js menyokong pengaturcaraan sisi pelayan dan sesuai untuk pembangunan stack penuh.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

Dreamweaver CS6
Alat pembangunan web visual