Por que não usar apenas o comando whois
?
whois -h whois.internic.net =google.com > whois.txt
No entanto, neste caso, recebo uma resposta melhor de
whois =google.com > whois.txt
Adendo
O Telnet é ótimo para a exploração interativa de protocolos TCP arbitrários baseados em texto (como SMTP, WHOIS, etc.), mas não é realmente bom para scripts
tente netcat
em vez
$ echo =google.com | nc whois.internic.net 43 > whois.txt
$ head whois.txt
Whois Server Version 2.0
Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.
Server Name: GOOGLE.COM.ZZZZZZZZZZZZZZZZZZZZZZZZZZZ.LOVE.AND.TOLERANCE.THE-WONDERBOLTS.COM
IP Address: 50.62.130.9
Registrar: GODADDY.COM, LLC
$ tail whois.txt
use electronic processes that are automated and high-volume to access or
query the Whois database except as reasonably necessary to register
domain names or modify existing registrations. VeriSign reserves the right
to restrict your access to the Whois database in its sole discretion to ensure
operational stability. VeriSign may restrict or terminate your access to the
Whois database for failure to abide by these terms of use. VeriSign
reserves the right to modify these terms at any time.
The Registry database contains ONLY .COM, .NET, .EDU domains and
Registrars.
$ grep -i status whois.txt
Status: clientDeleteProhibited
Status: clientTransferProhibited
Status: clientUpdateProhibited
Status: serverDeleteProhibited
Status: serverTransferProhibited
Status: serverUpdateProhibited
Eu recebo a mesma saída do netcat que eu faço do script + telnet. netcat é muito mais fácil
$ grep 'Name Server' whois.telnet | dos2unix | tee a
Name Server: NS1.GOOGLE.COM
Name Server: NS2.GOOGLE.COM
Name Server: NS3.GOOGLE.COM
Name Server: NS4.GOOGLE.COM
$ grep 'Name Server' whois.netcat | tee b
Name Server: NS1.GOOGLE.COM
Name Server: NS2.GOOGLE.COM
Name Server: NS3.GOOGLE.COM
Name Server: NS4.GOOGLE.COM
$ diff -s a b
Files a and b are identical
Outras ideias
A ferramenta canônica para o script telnet é expect
.
A ferramenta canônica para capturar a saída do terminal é script
.
Neste caso, acho que isso não seria adequado à sua tarefa (mas você pode discordar)