kraeved

Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору LevT Браузер Microsoft Edge опирается на Chromium, который написан на С++. Этот язык, как те же C, Rust и Python, имеет свою сетевую библиотеку. Таким образом, если в ОС не хватает сетевых функций и ОС не получает официальных обновлений, то это не конец света. Поэтому даже на Windows XP можно создать защищённое соединение по TLS 1.3, используя утилиту Curl или браузер Supermium. А вот PowerShell всецело опирается на кухню Microsoft с другой идеологией. Если в ОС чего-то не хватает, то тебя скорее высмеют, призвав срочно обновить компьютер, чем добавят недостающую функцию в NET. Кстати, этим недугом поражён и язык зумеров Go. Плевали они на условные бразильские фавелы, где пел Майкл Джексон и где возможности и приоритеты людей отличаются от заднеприводной Калифорнии. И тоже ведь ирония: они нарочито беспокоятся об углеродном следе и загрязнении Мирового океана, но тут же твердят: «Железо теперь дешёвое, почаще выбрасывайте старое и покупайте новое». Проиллюстрируем разницу подходов с помощью HTTPS-подключения к голому IP-адресу. Т.к. Windows 7 этого ещё не умеет, то скрипты на PowerShell и программы на Go выдают ошибку. PowerShell Код: $ cat doh.ps1 $response = (iwr https://8.8.8.8/resolve?name=cern.ch).content | convertfrom-json foreach ($a in $response.Answer) {$a.data} $ pwsh -f doh.ps1 Invoke-WebRequest: X:\Test\doh.ps1:1 Line | 1 | $response = (iwr https://8.8.8.8/resolve?name=cern.ch).content | conv … | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | Authentication failed because the remote party sent a TLS alert: 'HandshakeFailure'. $ sed -i s/8.8.8.8/dns.google/ doh.ps1 && pwsh -f doh.ps1 188.184.77.250 | Go Код: $ doggo cern.ch --short @https://8.8.8.8/dns-query level=ERROR msg="error in lookup" error="Post \"https://8.8.8.8/dns-query\": tls: failed to verify certificate: x509: certificate is valid for 8.8.8.8, 8.8.4.4, 2001:4860:4860::8888, 2001:4860:4860::8844, 2001:4860:4860::6464, 2001:4860:4860::64, not 8.8.8.8" $ doggo cern.ch --short @https://dns.google/dns-query 188.184.77.250 | C, C++, Rust, Python Код: $ curl -s -H "accept: application/dns-json" "https://8.8.8.8/resolve?name=cern.ch" | jq -r .Answer[].data 188.184.77.250 $ dig cern.ch +short +https @8.8.8.8 188.184.77.250 $ dns-over-https -u https://8.8.8.8/dns-query && nslookup cern.ch Name: cern.ch Addresses: 2001:1458:d00:3c::100:2f9 188.184.77.250 $ cat doh.py import httpx import dns.message import dns.query import dns.rdatatype where = "https://8.8.8.8/dns-query" qname = "cern.ch" with httpx.Client() as client: q = dns.message.make_query(qname, dns.rdatatype.A) r = dns.query.https(q, where, session=client) for answer in r.answer: print(answer) $ python doh.py cern.ch. 171 IN A 188.184.77.250 | KLASS Старожилы форума беседуют об особенностях PowerShell под Windows 7. Curl поставляется с Windows 10, упомянул для сравнения сетевой функции.
При чем тут Curl, название раздела не осилили? Виноват, проспал про то, что Curl уже встроен в ОС. | Всего записей: 1060 | Зарегистр. 01-03-2003 | Отправлено: 20:38 16-06-2025 | Исправлено: kraeved, 06:10 17-06-2025 |
|