Saída de script de uma conexão telnet


1

Outra pergunta whois, é possível para mim levar a saída de uma conexão telnet para um arquivo.

telnet whois.internic.net 43

então eu

=google.com

e obtenha uma resposta.

Posso obter isso para retornar a um arquivo para processamento depois que a conexão for fechada.

Respostas:


1

Por que não apenas usar o whois comando?

whois -h whois.internic.net =google.com > whois.txt

Embora neste caso eu consiga uma resposta melhor

whois =google.com > whois.txt

Termo aditivo

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.

experimentar netcat em vez de

$ 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 como 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 idéias

A ferramenta canônica para script de 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)


porque não responde com o status do domínio
Kurtis Bro

@ Kuris: ver adenda
RedGrittyBrick

[~] $ echo = google.com | nc whois.internic.net 43 & gt; whois.txt [~] $ cat whois.txt Whois Server Versão 2.0 Os nomes de domínio nos domínios .com e .net agora podem ser registrados com muitos registradores concorrentes diferentes. Vamos para internic.net para informações detalhadas. ~] $ parece não funcionar
Kurtis Bro

@ Kurtis: qual saída você estava esperando? nc e telnet retornam saída idêntica para mim.
RedGrittyBrick

Eu usei um servidor whois diferente. e consegui o resultado que eu esperava: D
Kurtis Bro
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.