DNS Toys (2022) yayında
(dns.toys)- dns.toys, DNS sorgularını bir komut arayüzü gibi kullanarak terminalde yalnızca
digile küçük yardımcı araçları çalıştırmayı sağlayan bir DNS sunucusudur - Dünya saati, hava durumu, 70'ten fazla birim dönüşümü ve günlük kur bazlı para birimi dönüşümü gibi arama sayfası açması uğraştıran işleri anında halledebilir
- Geliştiriciler için gerekli CIDR aralığı hesaplama, UUID v4·NanoID üretimi, Unix epoch dönüşümü ve sayı tabanı dönüşümü gibi özellikler de sunar
- Çağrı,
@dns.toysbelirtilerek yapılır; Bash·Fish·Zsh'tedyalias'ı eklenerek daha kısa kullanılabilir - Daha çok bir iş aracı olmaktan ziyade terminal içinde hızlıca kontrol etme ve hesaplama yapmanın keyfi ile pratikliğini hedefleyen bir hizmettir; basit sorgu işleri için uygundur
DNS sorgusuyla çalışan terminal yardımcı araçları
- dns.toys, çeşitli işlevleri bir DNS sunucusu olarak sunar ve alan adı biçimindeki sorgular
digile gönderilerek çalıştırılır -
Saat·hava durumu·dönüşüm
dig mumbai.time @dns.toys: şehrin güncel saatini sorgulamadig 2023-05-28T14:00-mumbai-paris/fr.time @dns.toys: şehirler arasında saat dilimi dönüşümüdig mumbai.weather @dns.toys: şehir hava durumunu sorgulamadig 42km-mi.unit @dns.toys: 70'ten fazla birim arasında dönüşümdig 100USD-INR.fx @dns.toys: günlük döviz kuru bazlı para birimi dönüşümüdig -4 ip @dns.toys: IPv4 veya IPv6 adresini öğrenme
-
Hesaplama·geliştirici odaklı işlevler
dig 10.0.0.0/24.cidr @dns.toys: bir alt ağdaki ilk ve son kullanılabilir IP'yi hesaplamadig 100dec-hex.base @dns.toys: hex, dec, oct, bin arasında taban dönüşümüdig 784783800.epoch @dns.toys: Unix timestamp'i okunabilir tarihe dönüştürmedig 5.uuid @dns.toys: UUID v4 üretmedig 5.10.nanoid @dns.toys: belirtilen uzunluk ve sayıda NanoID üretme
-
Eğlencelik işlevler
dig pi @dns.toys: Pi sayısını göstermedig 3d20/2.dice @dns.toys: belirtilen adet ve yüzde zar atmadig 2.coin @dns.toys: yazı tura atmadig 1-100.rand @dns.toys: aralık içinde rastgele sayı üretmedig excuse @dns.toys: rastgele bir geliştirici bahanesi gösterme
Kısaca çağırmak için kabuk alias'ı
dykısa komutu eklenirsedy mumbai.weathergibi daha kısa çağrılabilir- Bash:
alias dy="dig +short @dns.toys"satırını~/.bashrcdosyasına ekleyin - Fish:
alias dy="dig +noall +answer +additional $argv @dns.toys"satırını~/.config/fish/config.fishdosyasına ekleyin - Zsh:
alias dy="dig +short @dns.toys"satırını~/.zshrcdosyasına ekleyin
- Bash:
- Terminalde çok zaman geçiren kullanıcılar, ağır arama sayfaları açmadan birim dönüşümü veya hava durumu kontrolü gibi işleri hızlıca halledebilir
1 yorum
Hacker News yorumları
Eskiden kendi dinamik DNS yardımcı aracımı yazarken, makinemin IP adresini “güvenilir” biçimde hesaplamak için kullandığım küçük bir hile aklıma geldi
OpenDNS çözücüleri (
resolver1.opendns.comvb.)myip.opendns.comadını gerçek IP adresine çözer. Bağlantı durumuna göre A veya AAAA kaydı döner; bu çözücülerin IP’leri genelde anycast IP olduğundan, her an çökebilecek merkezi bir HTTP servisine istek atmaktan biraz daha hızlı olacağını düşünmek istiyordumElbette OpenDNS de her an ortadan kalkabilir, ama bu riski sayısız “IP adresim ne?” HTTP servisinden daha kabul edilebilir gördüm. DNS’in aslında alan adlarından daha geniş kapsamlı verileri taşımak için tasarlandığını da duymuştum; TXT kayıtları gibi şeyler bunun izi. Bu site, DNS ile elde edilebilecek faydayı iyi gösteriyor
dig @ns1-1.akamaitech.net ANY whoami.akamai.net +shortdig @ns1.google.com TXT o-o.myaddr.l.google.com +shortcurl -4si0A "" https://www.youtube.com|sed -n '/ip=/{s/.*ip=//;s/\.*//p;};'|uniqOpenDNS ile Cloudflare’dan hangisinin kapanma ihtimali daha yüksek? Aşağıdaki yöntem herhangi bir Cloudflare IP adresinde çalışır ve TLS de gerektirmez
printf 'GET /cdn-cgi/trace HTTP/1.0\r\nHost: cloudflare.com |nc -vvn 104.18.25.13 80 |sed -n /ip=/pCloudflare IP listesini
curl -4si0A "" https://api.cloudflare.com/client/v4/ipsile alabilirsiniz. İstemci IP adresini web sayfasında veya HTTP başlıklarında gösteren çok sayıda web sitesi var; bunun illa “What is my IP” sitesi olması gerekmezCloudflare ile belirli istekleri engelleyen web siteleri de bir seçenek. Örneğin StackOverflow’a User-Agent başlığı olmadan HTTP isteği gönderebilirsiniz
curl -si40A "" http://stackoverflow.com|sed -n '/cf-footer-ip">/{s/.*">//;s/<.*//p;}'Kendi IP adresiniz yüz binlerce web sitesinde gösterilirken “What is my IP” sitelerinin başarılı olması oldukça şaşırtıcı. DNS’in faydası konusunda https://www.netmeister.org/blog/dns-rrs.html da bakmaya değer
Ancak Cloudflare’ın işlettiği https://icanhazip.com/ da var; bunun daha kararlı olma ihtimali yüksek görünüyor
https://ipv4.icanhazip.com/
https://ipv6.icanhazip.com/
Julia Evans’ın büyük hayranıyım; DNS ile ilgili birkaç faydalı oyuncak da yaptı
https://jvns.ca/
https://dns-lookup.jvns.ca/
https://messwithdns.net/
İlgili yazılar
DNS Toys - https://news.ycombinator.com/item?id=31704789 - Haziran 2022, 104 yorum
DNS Toys: Useful utilities and services over DNS - https://news.ycombinator.com/item?id=31637226 - Haziran 2022, 1 yorum
Bu projenin yazarı yakın zamanda bir sunum yaptı; projenin nasıl ortaya çıktığına dair eğlenceli bir arka plan hikâyesi anlatılıyor
https://youtu.be/ANmFZ8rbmnc?si=ndEWH4xY2oxJuEnB
Tuhaf bir şekilde
dig A0.0,0.0/0.0,90.0.aerial @dns.toysve
dig A0.0,0.0/90.0,0.0.aerial @dns.toysikisi de
TXT "aerial distance = 10007.06 KM"döndürüyorEkvator çevresi 40.075,017 km, kutupsal çevre ise 40.007,863 km. Dünya’nın varsayımsal olarak inek biçiminde olduğunu kabul etsek bile büyük bir zararı yok; ayrıca elipsoid yüzeyi boyunca iki nokta arasındaki en kısa mesafeyi bulmaya yarayan can sıkıcı serilerden kaçınmayı sağlıyor
Biraz bağlantılı olarak, Birleşik Krallık işletme listesini DNS sorgusuyla sunan bir hizmet de var. DNS hizmetiyle DNS dışı veri sunma fikri aynı
https://www.num.uk/
Ancak yol haritasına bakınca hizmeti artık sürdürmüyor olabilirler gibi görünüyor
IN(internet) sınıfı bugün evrimsel olarak dimdik duran bir sekoya gibi görünebilir, ama Kambriyen döneminde CH(chaos) ve HS(hesiod) sınıfları da vardı. Bu projelerin amaç ve hedeflerine yeniden bakmaya değer
Aksine, günümüzdeki kötüye kullanım; yeniden iletim için 10 milisaniyelik pencere ya da qname minimizasyonu gibi şeylerle, bulut tabanlı web hizmetlerine, yani “happy eyeballs”a her şey pahasına optimize etmeye daha yakın. Örneğin bufferbloat gibi şeylerin de pek farkında değiller gibi. A/AAAA çözümlemenin dışında bambaşka bir dünya var
İnternet konferanslarının koridorlarında cep koruyucu takmış iki kişinin kılıç dövüşü yaptığını, en azından birbirini kalemle dürttüğünü görmek de nadir değildir. RFC, “Request For Comments”tır; BCP(Best Current Practice) ise günlük hayatta düzenli olarak göz ardı edilir
Hoşuma gitti. Yalnız
digin tüm platformlarda kurulu olmasını isterdimWindows’ta kullanılamaması hep sinir bozucu; kontrol edince Debian’da da varsayılan olarak gelmediğini gördüm. Elbette kolayca kurulabiliyor. OpenBSD ve Mac OS X’te var, bu iyi
https://dns.lookup.dog/
digkullanmak gerekmiyor.nslookupya dahostda çalışırWindows’ta da mutlaka bir tür DNS sorgulama aracı vardır
Bu başlıktaki aptal için, beş yaşındaki bir çocuğa anlatır gibi açıklayabilir misiniz? Eğlence amaçlı olduğunu biliyorum ama anlamıyorum. Nasıl çalıştığını da bilmiyorum; bunun cehaletimden kaynaklandığının farkındayım
Örneğin
dig 100USD-INR.fx @dns.toys, “DNS sunucusu olarakdns.toysu kullanıp100USD-INR.fxi çözümle” demektir. O da içinde gerçek yanıtın bulunduğu bir TXT kaydı döndürür.fxvar olmayan bir alan adı olduğundan kimliğine bürünülen biri yok;@dns.toysu@8.8.8.8gibi bir şeyle değiştirirseniz hiçbir şey çözümlenmeznews.ycombinator.comgibi bir siteyi düşünün. Tarayıcı, bu adla özel bir sunucudan IP sorgular. Bu alan adında kabaca şöyle bir şey saklanmış olabilirA IP = ...1AAAA IP = ...2Burada
Akayıt türüdür. Ama başka kayıt türleri de vardırTXT gender = 'male'DNS hakkında genellikle zımnen doğru kabul edilen birkaç varsayım var. İnsanlar DNS’i başka hizmetlere giden bir santral gibi kullanır ve santralin içindeki değerler çoğunlukla statiktir
Burada ise alan adına göre değişen değerler döndürülüyor, yani tamamen farklı bir şey yapılıyor. Bunu yapmak için kendi yaptığınız bir DNS sunucusu gerekir, ama DNS protokolünün kendisi oldukça basittir
Bu hack’in zekice olmasının nedeni, DNS’in en yaygın kullanılan ve desteklenen protokollerden biri olması; ana akım programlama kütüphanelerinin hepsinin desteklemesi ve işletim sistemlerinde zaten bulunan çok sayıda komut satırı aracının olmasıdır. DNS üzerinde bir hizmet olarak sunarsanız, en az bağımlılıkla araçlardan ve kütüphanelerden erişilebilir
Ayrıca DNS’i genel internet hizmetlerinin santrali değil, doğrudan bir uygulama hizmeti olarak kullandırarak DNS sisteminin nasıl kullanılması gerektiğine dair genel varsayımları tersine çevirir. Mevcut yazılımlara bağlarken de karmaşık entegrasyon gerekmez; DNS istekleri sıradan bir web API’sinden daha sezgisel sayılabilir. Sansüre dayanıklılık açısından da büyük olasılıkla bazı avantajları vardır
HTTP ile bir web sunucusuna istek yaptığınız gibi, DNS protokolüyle bir DNS sunucusuyla etkileşime girersiniz.
telnetile HTTP ya da SMTP isteğini taklit etmeye benzer; belirli bir kurallar kümesiyle belirli türde bir sunucuyla iletişim kurarsınızBu sunucu sonuç üretmeden önce bir miktar hesaplama yapar; bu da genellikle statik olması beklenen çoğu DNS kaydından ayrıldığı noktadır
google.comyazar ve yanıtı okurSunucu DNS sunucusu olarak doğru yapılandırılmışsa uygun DNS kaydını yine metin olarak döndürür.
google.com, yük dengelemede kullanılan bir alt alan adına işaret eden bir CNAME olduğundan, sunucuCNAME blabla.google.comgibi yanıt verebilir ve isterseblabla.google.comu da birlikte çözümleyerek ek isteğin zahmetinden kurtarabilirBir RFC’de tanımlanan DNS protokolü, istek ve yanıtların belirli bir şekilde yapılmasını şart koşar. Bunlardan biri, var olmayan bir üst düzey alan adı için — örneğin şu anda var olmayan
.time— sunucununnxdomaindöndürmesi gerektiğidir. Ama pratikte sunucunun güncel saat gibi herhangi bir değeri döndürmesini engelleyen teknik bir mekanizma yokturGenel olarak bakarsak, ister herkese açık ister özel olsun, DNS operatörünün saçma veri döndürmeyeceği beklentisi kullanıcıyı koruyan tek şeydir. HTTPS bunu bir ölçüde hafifletir, ancak DNS kayıtlarının kendisi fiilen sınırsız biçimde sahte üretilebilir ve bunu geri almanın bir yolu yoktur
Bu özelliklerin
dns.toysun herhangi bir alt alan adı üzerinden sunulmaması şaşırtıcı. O zaman özel bir ad sunucusu kullanmadan da çözümlenebilirdiSon zamanlarda bunun için çoğunlukla şunları kullanıyorum
https://addr.tools/
https://dnscheck.tools/
https://myip.addr.tools/help