Comando WhoIs - Saída Específica

Iniciado por Adenes, 05 de Março de 2015, 14:27

tópico anterior - próximo tópico

Adenes

Olá pessoal.

Quero utilizar o comando whois de uma forma que sua saída seja apenas parte do conteúdo exibido normalmente.

Exemplo:

Entro com o IP: 8.8.8.8

e quero salvar o resultado num documento de texto (usando ">"), porém quero somente salvar somente o conteudo dos campos Address e Country. Somente o conteudo desses campos, não quero salvar as palavras country e address.

Como posso fazer isso?

Obrigado.

druidaobelix

Esse tópico não deveria ter sido postado em "Dicas e Truques", pois não é nem um nem outro, é uma pergunta.
www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

druidaobelix

#2
Isso faz o que aparentemente você quer:

whois  8.8.8.8 | grep Address | cut -d ' ' -f9-

Resulta:

1025 Eldorado Blvd.
1600 Amphitheatre Parkway


whois  8.8.8.8 | grep Country | cut -d ' ' -f9-

Resulta:

US
US


Entretanto, observe que a saída não é regular em razão da base de dados de origem, algumas vezes Address e Country possuem apenas uma linha ou um misto disso, então depende do que mais exatamente você pretende com isso para eventualmente aplicar uma melhor técnica.

Por exemplo, aplique no IP 23.227.196.108

whois  23.227.196.108 | grep Address | cut -d ' ' -f9-

Resulta:

501 Silverside Rd, Suite 105
Wilmington, DE 19809

whois  23.227.196.108 | grep Country | cut -d ' ' -f9-

Resulta:

US  (portanto, apenas uma vez)

E dependendo do IP às vezes resulta em nada.

Por exemplo, aplique no IP 200.147.67.142, com ou sem delimitador, tanto faz, apenas o dado Address não existe para essa específica entrada e se aplicado ao dado Country existe porém o formulário da base de dados de origem usa a expressão em caixa baixa country, o que se resolveria usando o parâmetro -i em grep, porém como usa o Nic.br a posição do campo é outra, começando em 6, logo:

whois  200.147.67.142 | grep -i Country | cut -d ' ' -f6-

o que aparentemente permitiria melhor generalizar, pois também serve para IP fora do Nic.br (mas não dá para dizer se realmente em todos)

Então, na ausência de um padrão óbvio de entrada, parece que está requerendo uma melhor conceituação do problema e definição de finalidade para poder esquematizar melhor.

www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

galactus

BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

irtigor

Olhe o awk, o sed provavelmente também funciona.

Adenes

Primeiramente me desculpem, por ter postado no local errado, foi distração.


druidaobelix, muito obrigado pelas informações, eue stava tentando usar o grep mas sem ser eficaz, com as tuas dicas vou conseguir evoluir nesse quesito. Ainda não tive tempo de testá-las, mas o farei logo.

A aplicação que estou desenvolvendo é um CGI, em C++. Na parte em que estou, preciso, a partir de um IP, pinar no google maps a localização desse IP. Estou tentando pelo whois extrair as informações que preciso e a seguir usar o google maps para exibi-las no navegador.
Realmente existe esse problema de que tu falou, alguns IPs não fornecem as informações de que preciso. Então, tens alguma dica de que como eu poderia solucionar o problema de mostrar a localização nesse caso?

Mais uma vez obrigado pelas respostas.