Как уже упоминалось, вы можете зациклить вызов dig
.
Вы можете использовать, например, этот небольшой сценарий bash и сохранить его в файле с именем, например, bulkreverse.sh
:
#!/bin/bash
filename='ip_in.txt' # name of file with IPs to handle
nameserver='8.8.8.8' # nameserver to query
for ip in `cat $filename`
do
echo 'Handling reverse DNS for $ip'
dig @$nameserver -x $ip +short
done
Переменная filename
указывает имя файла со списком IP-адресов (например, ваш пример, oen IP на строку). сервер имен
- это сервер имен для запроса.
Если вы сохранили сценарий в файле с именем bulkreverse.sh
, вам нужно сделать его исполняемым, запустив
chmod +x bulkreverse.sh
После этого вы можете запустить его с помощью
./bulkreverse.sh
, надеюсь, это поможет!
Если вы контролируете формат ввода, который вы ожидаете, проще всего прочитать весь файл в python, извлечь с помощью регулярного выражения таблицу представляющий интерес, затем передайте это в csv:
import csv, re
data = open("foo.org").read()
mo = re.search("TBLNAME: table1\n.*?\n(\n|$)", data, re.S)
mytable = mo.group(0)
d = csv.DictReader(mytable.splitlines(), delimiter='|')
Вам необходимо преобразовать строку mytable
в итерацию для программы чтения csv, например, как показано здесь, путем разделения строк.
Вы можете написать функцию Python, которая считывает и добавляет строки, первый и последний символ которых - '|' в таблицу (которая может быть объектом списка, где каждый элемент представляет собой одну строку таблицы).
Если у вас несколько таблиц, строка не начинается с символа '|' это намек на «конец стола».