Perl для системного администрирования



     оборудование производства пластиковых паллет. |          

Обращайте внимание на подозрительную активность - часть 6


А пока вернемся к программе:

 принимаем полностью определенное имя домена и пытаемся

 определить домен

sub domain{

 ищем IP-адреса

if ($„[0] =' /-\d+\.\d+v\d+v\d+$/) {

 если пользователь не указал ключ -i. просто

 возвращаем IP-адрес как есть

unless (defined $opt_i){

return $_[0];

}

 иначе возвращаем все. кроме последнего октета

else {

$_[0] =~ /(.-)\.\d+$/:

return $1;

(

}

 переводим все в нижний регистр, чтобы потом было

# проще и быстрее обрабатывать информации!

S. [.и] = 1с($_[С]);

}

}

Следующая очень короткая подпрограмма заключает в себе самую сложную часть программы. Подпрограмма &AodToTr

ч;() работает с усеченными именами узлов и сохраняет информацию в хэш-таблицу. Мы применим способ сравнения подстрок, который может пригодиться и в ином контексте.

В нашем случае было бы неплохо, если бы все эти имена доменов (читались бы и сохранялись бы в массиве уникальных имен доменов для пользователя как одно имя:

ccs.neu.edu

ccs.neu.ed

ccs. n

Решая, является ли имя домена уникальным, необходимо проверить три вещи:

1. Совпадает ли имя домена полностью с чем-нибудь, что уже сохранено для этого пользователя?

2. Является ли это имя домена подстрокой уже сохраненных данных?

3. Являются ли подстрокой проверяемого имени домена сохраненные данные?

Если верно что-либо из этого списка, значит, нет необходимости добавлять новую запись к структуре данных, поскольку эквивалентная под строка уже сохранена в списке доменов для пользователя. Если выполняется пункт 3, мы заменим сохраненную запись текущей, если, конечно, мы сохраняем строки максимальной длины. Внимательные читатели могли заметить, что выполнение первых двух пунктов можно  проверять одновременно, поскольку точное совпадение эквивалентно совпадению подстроки по всем символам.

Если же не справедлив ни один из этих случаев, то необходимо сохранить новую запись. Посмотрим сначала на код, а потом обсудим, как он работает:

цио AodTolPfc!

 проверка 1-го и 2-го случаев: есть л/ полное или




Содержание  Назад  Вперед