Ajuda - Criando um script para exibir IP de "dominio" [RESOLVIDO]

1. Ajuda - Criando um script para exibir IP de "dominio" [RESOLVIDO]

Wellington
wellington1025

(usa Ubuntu)

Enviado em 01/10/2019 - 19:23h

Olá pessoal,

preciso desenvolver um script em shell scipt !#/bin/bash onde o cliente quer saber o IP de um determinado domínio, eu criei a instrutura onde ao rodar o script eu peço para o cliente digitar o domínio exemplo : www.google.com.br
e na sequência o script tem que trazer o ip desse domínio e ai que estou me complicando, não estou conseguindo trazer a resposta com o número ip do dominio, segue minha instrutura abaixo caso alguém possa me ajudar com isso agradeço.

#!/bin/bash
#Obter o IP de um domínio especificado pelo usuário
echo "digite o endereço do dominio:"
read n1
n1=$(dig TXT +short o-o.myaddr.l.google.com @ns1.google.com)
echo "o ip desse site é: $n1"


  


2. MELHOR RESPOSTA

Eris Ribeiro Junior
erixtech

(usa Arch Linux)

Enviado em 01/10/2019 - 23:25h

A pergunta não foi para mim, mas uma forma de fazer sabendo que se o domínio não existir ou for passado incorreto, ele retorna com o valor da variável vazio.
*Importante aqui é testar apenas o comando dig e ver como se comporta, olhar o manual etc. Tendo uma ideia do que ocorre pensar na solução.
Outras mais elaboradas podem vir, a solução "Pé de boi" e espero que suficientemente didática para o caso (o dig não imprime nada se o domínio estiver errado ou ele não encontrar o IP), me trouxe a ideia de testar a variável com o dominio e, se ela estiver vazia avisar o operador, senão estiver, imprimo o IP:

#!/bin/bash

# Obter o IP de um domínio especificado pelo usuário
echo -e "digite o endereço do dominio: \n"
read dominio

# Variavel ip recebe o retorno do dig
ip=$(dig +short ${dominio} @8.8.8.8)

# Testa se variável ip não esta vazia
if [ -z "${ip}" ]; then
#Se for nula, avisa o usuario que algo esta errado
echo -e "O endereço informado: ${dominio} não existe ou esta incorreto! \n "
else
#Não sendo nula, inprime o valor de $ip
echo -e "o ip desse site é: \n ${ip} \n"
fi




-> Exemplos assim estão nos links.
Vai fazendo o mais simples para funcionar, dando certo aprimora o código (Remove coisas desnecessárias, diminui numero de linhas, usa filtros mais inteligentes etc).


*Editado, devido ao texto inicial dar a entender que vazio e nulo seriam a mesma coisa.




3. Re: Ajuda - Criando um script para exibir IP de "dominio" [RESOLVIDO]

Matheus
pylm

(usa Gentoo)

Enviado em 01/10/2019 - 20:30h



#!/usr/bin/env bash

read -p "Digite o endereço do domínio: " dominio

echo "O IP desse site é $(dig +short $dominio)"


Seria interessante adicionar um tratamento na saída do dig pra evitar domínios inexistentes.


4. Re: Criando um script

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 01/10/2019 - 20:54h

wellington1025 escreveu:

Olá pessoal,

preciso desenvolver um script em shell scipt !#/bin/bash onde o cliente quer saber o IP de um determinado domínio, eu criei a instrutura onde ao rodar o script eu peço para o cliente digitar o domínio exemplo : www.google.com.br
e na sequência o script tem que trazer o ip desse domínio e ai que estou me complicando, não estou conseguindo trazer a resposta com o número ip do dominio, segue minha instrutura abaixo caso alguém possa me ajudar com isso agradeço.

#!/bin/bash
#Obter o IP de um domínio especificado pelo usuário
echo "digite o endereço do dominio:"
read n1
n1=$(dig TXT +short o-o.myaddr.l.google.com @ns1.google.com)
echo "o ip desse site é: $n1"


Boa noite Wellington.
Segue:
#!/bin/bash
if [ $1 ];then
printf " O IP do domínio: \"$1\" é: \"$(dig +short $1)\"\n"
else
printf " Uso: $0 domínio\n"
fi

Obs: Forneça o domínio como argumento, exemplo:
./nomedoscript google.com
Importante => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


5. Re: Criando um script

Eris Ribeiro Junior
erixtech

(usa Arch Linux)

Enviado em 01/10/2019 - 20:57h

wellington1025 escreveu:

Olá pessoal,

preciso desenvolver um script em shell scipt !#/bin/bash onde o cliente quer saber o IP de um determinado domínio, eu criei a instrutura onde ao rodar o script eu peço para o cliente digitar o domínio exemplo : www.google.com.br
e na sequência o script tem que trazer o ip desse domínio e ai que estou me complicando, não estou conseguindo trazer a resposta com o número ip do dominio, segue minha instrutura abaixo caso alguém possa me ajudar com isso agradeço.

#!/bin/bash
#Obter o IP de um domínio especificado pelo usuário
echo "digite o endereço do dominio:"
read n1
n1=$(dig TXT +short o-o.myaddr.l.google.com @ns1.google.com)
echo "o ip desse site é: $n1"


Faltou atualizar sua variavel n1 com o valor recebido pelo usuário(Adicionar a própria variável no lugar o-o.myaddr.l.google.com) , e aqui apontando para o servidor dns pelo nome também não retornou, para resolver logo usei o IP do DNS do google (8.8.8.8), note que chamei n1 de domínio, apenas para ficar mais descritivo.


#!/bin/bash

# Obter o IP de um domínio especificado pelo usuário
echo -e "digite o endereço do dominio: \n"
read dominio

# Altera o conteudo de dominio, o substibuindo pelo ip retornado pelo dig
dominio=$(dig +short ${dominio} @8.8.8.8)

# Imprime o resultado.
echo -e "o ip desse site é: \n $dominio "



Como fonte de consulta, lhe recomendo:
https://aurelio.net/shell/apostila-introducao-shell.pdf
https://aurelio.net/shell/canivete/pdf/canivete-shell.pdf
man echo



6. Criando um script

Wellington
wellington1025

(usa Ubuntu)

Enviado em 01/10/2019 - 21:58h


Obrigado pela ajuda galera, deu super certo.

vou só criar uma saída caso digitem algum site inexistente.


7. Re: Ajuda - Criando um script para exibir IP de "dominio" [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 01/10/2019 - 22:06h


wellington1025 escreveu:


Obrigado pela ajuda galera, deu super certo.

vou só criar uma saída caso digitem algum site inexistente.

wellington, se a var IP esta vazia, o domínio informado não existe, segue:
#!/bin/bash
if [ $1 ];then
IP=$(dig +short $1);
[ $IP ] && printf "\e[0;38;05;2m O IP do domínio: \"$1\" é: \"$IP\"\e[m\n" || printf "\e[1;38;5;196m Domínio inválido\e[m\n"
else
printf "\e[0;38;05;11m Uso: $0 domínio\e[m\n"
fi


Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver


8. Criando um script

Wellington
wellington1025

(usa Ubuntu)

Enviado em 01/10/2019 - 22:20h



@marcelo

Nessa estrutura criada abaixo como posso, informar o cliente que o site ou o ip não existe caso ele digite errado?

#!/bin/bash
#Obter o IP de um domínio especificado pelo usuário
echo -e "digite o endereço do dominio: \n"
read dominio
dominio=$(dig +short ${dominio} @8.8.8.8)
echo -e "o ip desse site é: \n $dominio "


9. Re: Ajuda - Criando um script para exibir IP de

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 02/10/2019 - 00:18h

wellington1025 escreveu:
@marcelo
Nessa estrutura criada abaixo como posso, informar o cliente que o site ou o ip não existe caso ele digite errado?

#!/bin/bash
#Obter o IP de um domínio especificado pelo usuário
echo -e "digite o endereço do dominio: \n"
read dominio
dominio=$(dig +short ${dominio} @8.8.8.8)
echo -e "o ip desse site é: \n $dominio "


Wellington, é simples, siga a logica que postei com a var "IP", que contem a "saída" do comando dig....
Se o domínio não existe, o comando dig não retorna "NADA", logo, a var é "vazia", então:
[ $dominio ] && printf "\e[0;38;05;2m O IP do domínio: \"$1\" é: \"$IP\"\e[m\n" || printf "\e[1;38;5;196m Domínio inválido\e[m\n"
O comando acima, funciona como o "if", só que de uma forma "reduzida", com o "if", fica:
if [ $dominio ];then
printf "\e[0;38;05;2m O IP do domínio: \"$1\" é: \"$IP\"\e[m\n"
else
printf "\e[1;38;5;196m Domínio inválido\e[m\n"
fi

Explicando:
Se a var "dominio" existir, não for vazia, escreve:
O IP do domínio: "google.com" é: "216.58.202.14"
Se for vazia, escreve:
Domínio inválido
Obs: Veja mais sobre esse "condicional em: https://aurelio.net/shell/canivete/#test

CORRIGIDO # Cometeu o mesmo erro da sua 1ª postagem
#!/bin/bash
#Obter o IP de um domínio especificado pelo usuário
read -p "Digite o endereço do domínio: " url
dominio=$(dig +short ${url} @8.8.8.8)
[ $dominio ] && echo -e "o ip desse site é: \n $dominio " || echo "Domínio inválido"

Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver


10. Criando um script

Wellington
wellington1025

(usa Ubuntu)

Enviado em 02/10/2019 - 11:13h

Obrigado, deu certo.


11. Criando um script

Wellington
wellington1025

(usa Ubuntu)

Enviado em 02/10/2019 - 16:05h

Boa tarde.

como faço para criar um shell scrip para ele me trazer (a arquitetura de hardware do sistema)


12. Re: Ajuda - Criando um script para exibir IP de "dominio" [RESOLVIDO]

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 02/10/2019 - 16:27h


wellington1025 escreveu:

Boa tarde.

como faço para criar um shell scrip para ele me trazer (a arquitetura de hardware do sistema)


file /bin/bash | awk {'print $3'}




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts