Сценарий оболочки для отображения IP

Как создать сценарий оболочки, который получает векторный аргумент, например

./ script.sh google.com, yahoo.com

, и отображать ip для каждого домена

[ 114] как google.com 100.23.123.13


РЕДАКТИРОВАТЬ:

#!/bin/bash

while [ "$1" ]; 
do
host $1 | grep address | head -1
done
3
задан 10 November 2017 в 21:09

4 ответа

Вы можете выполнять поиск по нескольким запросам напрямую, используя команду dig, например

.
dig google.com yahoo.com

или для менее подробного вывода

dig +noall +answer google.com yahoo.com

или для вывода только IP

dig +short google.com yahoo.com
0
ответ дан 10 November 2017 в 21:09

Вы можете сделать это таким образом.

Откройте терминал

$ gedit get_domain_ip.sh &

Добавьте следующие строки в файл и сохраните.

#!/bin/bash

read -p "Enter domain name : " DOMAIN_INPUT

host $DOMAIN_INPUT

#END

Пометить скрипт как исполняемый

$ chmod +x get_domain_ip.sh

Тестирование

neo@neo-H87H3-M:~$ ./get_ip.sh

Enter domain name : google.com    
google.com has address 173.194.72.102    
google.com has address 173.194.72.101    
google.com has address 173.194.72.100    
google.com has address 173.194.72.139    
google.com has address 173.194.72.138    
google.com has address 173.194.72.113    
google.com has IPv6 address 2404:6800:4008:c00::8a    
google.com mail is handled by 50 alt4.aspmx.l.google.com.    
google.com mail is handled by 20 alt1.aspmx.l.google.com.    
google.com mail is handled by 30 alt2.aspmx.l.google.com.    
google.com mail is handled by 10 aspmx.l.google.com.    
google.com mail is handled by 40 alt3.aspmx.l.google.com.

neo@neo-H87H3-M:~$
0
ответ дан 10 November 2017 в 21:09

Для однодоменного ввода >>

#!/bin/sh
#get IP
host $1 | head -n 1 | awk '{print $1,"\t",$4}'

Для многодоменного ввода >>

#!/bin/sh
#get IP
for url in $@; do
    host $url | head -n 1 | awk '{print $1,"\t",$4}'
done
0
ответ дан 10 November 2017 в 21:09

Вы можете использовать следующий скрипт:

#!/bin/sh

for domain in $@; do
    host $domain | grep "has address" | awk '{print $1"\t"$4}'
done

Использование: ./script www.domain1.com domain2.com ...

Например:

$ ./script.sh www.google.com yahoo.com www.askubuntu.com google.ro
www.google.com  173.194.40.81
www.google.com  173.194.40.84
www.google.com  173.194.40.82
www.google.com  173.194.40.83
www.google.com  173.194.40.80
yahoo.com   98.138.253.109
yahoo.com   206.190.36.45
yahoo.com   98.139.183.24
askubuntu.com   198.252.206.24
google.ro   173.194.35.31
google.ro   173.194.35.23
google.ro   173.194.35.24
0
ответ дан 10 November 2017 в 21:09

Другие вопросы по тегам:

Похожие вопросы: