Утилита WHOIS командной строки Windows с поддержкой IDN

698
Andreas Rejbrand

Я использую отлично Mark Russinovich whois.exeдля выполнения запросов WHOIS из командной строки в Microsoft Windows. Это работает очень хорошо, но не обрабатывает IDN. Например, если я пытаюсь проверить свой домен ändlöslängtan.se, я пытаюсь получить whois ändlöslängtan.seсовпадение. Если я вручную преобразую ändlöslängtan.seв xn--ndlslngtan-p5af5u.se(например, используя адресную строку Google Chrome и буфер обмена), это работает. Однако было бы намного удобнее, если бы утилита CLI могла выполнять это преобразование автоматически.

Вопрос: Существует ли облегченная утилита интерфейса командной строки Windows, похожая на утилиту Марка Руссиновича whois.exe, которая автоматически преобразует ИДИ?

1
Можете ли вы объяснить, что именно вы сделали за «преобразование» (в `xn - ndlslngtan-p5af5u.se`)? Я не достаточно разбираюсь в интернационализации, чтобы понять это из головы. Trevor Sullivan 10 лет назад 0
@TrevorSullivan: я не знаю деталей, но дело в том, что интернационализированное доменное имя (например, `ändlöslängtan.se`) автоматически преобразуется браузером (или другим программным обеспечением) в версию только для ASCII, то есть фактическое доменное имя (но обычно не показывается пользователю). Взгляните на [Википедия] (https://en.wikipedia.org/wiki/Internationalized_domain_name). Andreas Rejbrand 10 лет назад 0

2 ответа на вопрос

4
mfornasa

The Linux whois client by Marco D'Itri does supports IDNs, so I came up with a Windows porting. For example, your query shows up as in the following:

>whois ändlöslängtan.se # Copyright (c) 1997- .SE (The Internet Infrastructure Foundation). # All rights reserved. [cut] # The data is in the UTF-8 character set and the result is # printed with eight bits. state: active domain: xn--ndlslngtan-p5af5u.se (A☼ndlA¶slA☼ngtan.se) holder: andrea4342-00001 admin-c: - tech-c: - billing-c: - created: 2011-02-20 modified: 2014-02-10 expires: 2015-02-20 transferred: 2014-02-10 nserver: ns2.loopia.se nserver: ns1.loopia.se dnssec: unsigned delegation status: ok registrar: Loopia AB 

@sahmeepee method was correct albeit indirect, but you would need to install IDN+ICONV libraries. In my porting I preferred to statically link them, in order to obtain a standalone executable.

You can find the first release along with the source code in my github page.

Хорошо. Я подготовил [новую версию] (https://github.com/mfornasa/whois/releases/tag/v5.1.1_win32_alpha2), которая правильно поддерживает символы не ASCII в ответе сервера (как в строке «домен:» выше). ). mfornasa 10 лет назад 1
0
sahmeepee

I couldn't find exactly what you wanted, but the gnu libidn package has a program called "idn" which has an "-a" option providing the conversion you are after. It wasn't that easy to find binaries for Windows, but I came across this link to binaries for a slightly older version:

http://josefsson.org/gnutls4win/libidn-1.19.zip

You should be able to use idn -a and pipe the output into your whois command to achieve the result you were looking for. To make it more convenient, you could make a batch file which takes your domain name as a parameter so you don't have to type both commands every time.

Я еще не понял, как использовать эту утилиту. Возвращает что-то, что выглядит правильно, но это не так (`xn - dllgtan-9ebd278h.se`). Он также жалуется: `libidn: warning: libiconv не установлен, не может преобразовать данные в UTF-8`. Новая версия (1.28) также дает сбой, но несколько иным способом (`idn: не удалось преобразовать из ASCII в UTF-8`, никакого вывода вообще нет,` libiconv` присутствует). Andreas Rejbrand 10 лет назад 0