Можно , конечно, использовать ping, но в списке 2000 строк
получить из списка доменных имен > IP адреса
Модератор: /dev/random
-
SANyaSmolenskii
- Сообщения: 40
- ОС: Mandriva2010.0 free
получить из списка доменных имен > IP адреса
Есть ли программа, которая может сделать собственно сабж?
Можно , конечно, использовать ping, но в списке 2000 строк
Можно , конечно, использовать ping, но в списке 2000 строк
-
dva20
- Сообщения: 93
- ОС: Debian Lenny
Re: получить из списка доменных имен > IP адреса
Можно написать скриптик, например на bash, использовав утилиты host или nslookup, можно поюзать еще и dig
-
allez
- Сообщения: 2223
- Статус: Не очень злой админ :-)
- ОС: SuSE, CentOS, FreeBSD, Windows
Re: получить из списка доменных имен > IP адреса
Добавлю, что использование host предпочтительнее ping по той причине, что некоторые серверы имеют по несколько IP-адресов. Ping покажет вам только один из них, а вот host - все.
Вот что host говорит прo mail.ru
$ host mail.ru | grep "address"
mail.ru has address 194.67.57.26
mail.ru has address 194.67.57.126
mail.ru has address 194.67.57.226-
dva20
- Сообщения: 93
- ОС: Debian Lenny
Re: получить из списка доменных имен > IP адреса
Ну вот типа скриптик
Скопировать код, например, в файл showip, затем на вход скрипта подать через пробелы список хостов, например так: sh /ПУТЬ_К_СКРИПТУ/showip linuxforum.ru linux.org.ru
или подать на вход скрипту список из файла, а на выход в другой файл, например:
cat /home/user/list_name | xargs /home/user/showip > list_ip.
"Красивости" предлагаю самому реализовать в скрипте.
P.S. Спасибо serzh-z, обнаружил ошибочку у себя, подправил
Код: Выделить всё
#!/bin/bash
for i in $1; do
host $i|grep address
doneСкопировать код, например, в файл showip, затем на вход скрипта подать через пробелы список хостов, например так: sh /ПУТЬ_К_СКРИПТУ/showip linuxforum.ru linux.org.ru
или подать на вход скрипту список из файла, а на выход в другой файл, например:
cat /home/user/list_name | xargs /home/user/showip > list_ip.
"Красивости" предлагаю самому реализовать в скрипте.
P.S. Спасибо serzh-z, обнаружил ошибочку у себя, подправил
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: получить из списка доменных имен > IP адреса
SANyaSmolenskii, cat hosts.txt | xargs netselect
-
SANyaSmolenskii
- Сообщения: 40
- ОС: Mandriva2010.0 free
Re: получить из списка доменных имен > IP адреса
to serzh-z
Что должен вообще выводить netselect?
У меня так:
to dva20
Спасибо!
Скрипт работает. Перелопатил мне файл 800 000 строк, и все в лучшем виде вывел в файл.
Что должен вообще выводить netselect?
У меня так:
Код:
[san@localhost slon]$ netselect ya.ru
36 ya.ru
to dva20
Спасибо!
Скрипт работает. Перелопатил мне файл 800 000 строк, и все в лучшем виде вывел в файл.
-
SANyaSmolenskii
- Сообщения: 40
- ОС: Mandriva2010.0 free
Re: получить из списка доменных имен > IP адреса
Похоже, рано обрадовался.
Такое ощущение, что надо добавить задержку в вывод cat. А как это сделать, не знаю. Кажется, то , что передает cat, не успевает обрабатывать host. Я немножко изменил скрипт
Запускаю так cat domains |xargs ./showip > ip
В выводе (ip) видно, что пропускается много доменов.
Такое ощущение, что надо добавить задержку в вывод cat. А как это сделать, не знаю. Кажется, то , что передает cat, не успевает обрабатывать host. Я немножко изменил скрипт
Код:
#!/bin/bash
for i in $1; do
echo "*";
echo $i;
host $i|grep address;
doneЗапускаю так cat domains |xargs ./showip > ip
В выводе (ip) видно, что пропускается много доменов.
-
allez
- Сообщения: 2223
- Статус: Не очень злой админ :-)
- ОС: SuSE, CentOS, FreeBSD, Windows
Re: получить из списка доменных имен > IP адреса
Похоже, что ваш скрипт пытается "скормить" команде host несколько имен за раз. А host умеет работать только с одним аргументом. Попробуйте организовать построчное считывание своего файла. Примерно так:
Запуск: ./showip domains
P. S. Построчное чтение файла в цикле можно оформить еще одним способом:
Запуск скрипта при этом не меняется: ./showip domains
P. P. S. Если на выходе скрипта должны быть не только "голые" IP-адреса, уберите конвейер с awk.
Код: Выделить всё
#!/bin/bash
cat $1 | while read DOMAIN;
do
echo "*"
echo $DOMAIN
host $DOMAIN | grep "address" | awk '{print $NF}'
doneЗапуск: ./showip domains
P. S. Построчное чтение файла в цикле можно оформить еще одним способом:
Код: Выделить всё
#!/bin/bash
while read DOMAIN;
do
echo "*"
echo $DOMAIN
host $DOMAIN | grep "address" | awk '{print $NF}'
done < $1Запуск скрипта при этом не меняется: ./showip domains
P. P. S. Если на выходе скрипта должны быть не только "голые" IP-адреса, уберите конвейер с awk.
-
SANyaSmolenskii
- Сообщения: 40
- ОС: Mandriva2010.0 free
Re: получить из списка доменных имен > IP адреса
to allez
Использовал ваш скрипт, только переделал совсем немножко:
Работает! Запустил его перерабатывать свой файл с 800 000 строчек. Надеюсь, не забанят на DNS-сервере.
Всем ОГРОМНОЕ СПАСИБО за помощь. Тему можно закрыть.
Использовал ваш скрипт, только переделал совсем немножко:
Код: Выделить всё
#!/bin/bash
date
while read DOMAIN;
do
host $DOMAIN | grep "address" | awk '{print $NF}'
done < $1
dateРаботает! Запустил его перерабатывать свой файл с 800 000 строчек. Надеюсь, не забанят на DNS-сервере.
Всем ОГРОМНОЕ СПАСИБО за помощь. Тему можно закрыть.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: получить из списка доменных имен > IP адреса
не с подобной ли задачей столкнулся топик-стартер?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог