<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Bash Скрипт обработка писем или текстовых файлов</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8804.html</link>
    <description>:) Здравствуйте :)&lt;br&gt;&lt;br&gt;Помогите написаить скрипт, который бы перебирал все письма в указанной папке, и выводил на консоль определённую информацию о этих письмах, а именно:&lt;br&gt;1 Имя файла&lt;br&gt;2 все IP адреса, встречающиеся в заголовках Received: письма;&lt;br&gt;3 все доменные имена, встречающиеся в теле письма.&lt;br&gt;&lt;br&gt;В формате:&lt;br&gt;&lt;br&gt;&quot;Имя файла1&quot;&lt;br&gt;&lt;br&gt;Доменные имена из тела:&lt;br&gt;&quot;Доменное имя 1&quot;&lt;br&gt;&quot;Доменное имя 2&quot;&lt;br&gt;...&lt;br&gt;&quot;Доменное имя n&quot;&lt;br&gt;&lt;br&gt;IP адреса из заголовка в строках начинающимся словом Received:&lt;br&gt;&quot;IP 1&quot;&lt;br&gt;&quot;IP 2&quot;&lt;br&gt;...&lt;br&gt;&quot;IP n&quot;&lt;br&gt;&lt;br&gt;&quot;Имя файла 2&quot;&lt;br&gt;,,,&lt;br&gt;и т.д. для всех файлов, находящихся в указанной директории (например ./mail)&lt;br&gt;&lt;br&gt;&lt;br&gt;Задача, как я представляю, состоит из следующих этапов:&lt;br&gt;&lt;br&gt;1.1 Передор директории ./mail&lt;br&gt;1.2 Вывод имени файла на консоль&lt;br&gt;2.1 Обработка тела писем и получение из них URL-ей email-ов и доменов (Тела письем от заголовков отделено пустой строкой) &lt;br&gt;2.2 Преобразование доменых имён из ранее полученных URL-ей (отфильровать текст между / и /) (http://vasya.narod.ua/forum/index.php -&amp;gt; vasya.narod.ua)&lt;br&gt;2.3 Преобр</description>

<item>
    <title>Bash Скрипт обработка писем или текстовых файлов (L0n3R4ng3r)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8804.html#9</link>
    <pubDate>Sat, 17 Jul 2010 21:29:29 GMT</pubDate>
    <description>используйте регексп (&#092;d&#123;1,3&#125;)&#092;.(&#092;d&#123;1,3&#125;)&#092;.(&#092;d&#123;1,3&#125;)&#092;.(&#092;d&#123;1,3&#125;) для определения айпишников:&lt;br&gt;&lt;br&gt;вот файл с письмом :&lt;br&gt;$ cat qwe&lt;br&gt;Received: (qmail 29944 invoked from network); 8 Jan 2003 07:10:33 -0000&lt;br&gt;Received: from dev212.mailshell.com (HELO mailshell.com) (71.129.195.163)&lt;br&gt;  by dev50.mailshell.com with SMTP; 8 Jan 2003 07:10:33 -0000&lt;br&gt;Received: (qmail 26211 invoked by uid 99); 8 Jan 2003 07:10:33 -0000&lt;br&gt;Message-ID: &amp;lt;20030108071033.15907.qmail&#064;mailshell.com&amp;gt;&lt;br&gt;Received: (qmail 13669 invoked from network); 8 Jan 2003 07:10:31 -0000&lt;br&gt;Received: from unknown (HELO anclsmtp03.myfamily.com) (63.92.90.192)&lt;br&gt;  by www.mailshell.com with SMTP; 8 Jan 2003 07:10:31 -0000&lt;br&gt;Received: from ancnews01 (10.6.8.151) by anclsmtp03.myfamily.com (LSMTP for Windows NT v1.1b) with SMTP id &amp;lt;22.00312C4E&#064;anclsmtp03.myfamily.com&amp;gt;; Wed, 8 Jan 2003 0:11:17 -0700&lt;br&gt;X-Sender: &amp;lt;unsubscribe.nbrc8744.000001.1048576.0.0&#064;unsubscribe.myfamily.com&amp;gt;&lt;br&gt;Reply-To: &amp;lt;unsubscribe.nbrc8744.000001.1048576.0.0&#064;unsubscribe.myfamily.com&amp;gt;&lt;br&gt;From: &quot;Ancestry Special</description>
</item>

<item>
    <title>Bash Скрипт обработка писем или текстовых файлов (ILYA INDIGO)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8804.html#8</link>
    <pubDate>Sat, 17 Jul 2010 11:10:40 GMT</pubDate>
    <description> &amp;gt;Вот регулярное выражение для поиска IP адреса который приведен в этой книге &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;^(&#091;01&#093;?&#092;d&#092;d?&amp;#124;2&#091;0-4&#093;&#092;d&amp;#124;25&#091;0-5&#093;)&#092;.(&#091;01&#093;?&#092;d&#092;d?&amp;#124;2&#091;0-4&#093;&#092;d&amp;#124;25&#091;0-5&#093;)&#092;.(&#091;01&#093;?&#092;d&#092;d?&amp;#124;2&#091;0-4&#093;&#092;d&amp;#124;25&#091;0-5&#093;)&#092;.(&#091;01&#093;?&#092;d&#092;d?&amp;#124;2&#091;0-4&#093;&#092;d&amp;#124;25&#091;0-5&#093;)$&lt;br&gt;&lt;br&gt;При таком алгоритме вывод вообще пустой, а если убрать ^ в начале и $, то аналогичен вы воду Второго алгоритма т.е.&lt;br&gt;&#091;code&#093;71&lt;br&gt;63&lt;br&gt;10&#091;/code&#093;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Bash Скрипт обработка писем или текстовых файлов (ILYA INDIGO)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8804.html#7</link>
    <pubDate>Sat, 17 Jul 2010 10:58:18 GMT</pubDate>
    <description>&amp;gt;я бы посоветовал использовать perl все таки он изобретен для обработки текста &lt;br&gt;&amp;gt;и как никто лучше справляеться с &amp;#1108;той задачей &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;ну вот где-то так.. печатал сразу тут так что на ерроры не &lt;br&gt;&amp;gt;проверял. &lt;br&gt;&lt;br&gt;Ок спасибо за совет и ответ, я таки, буду пытаться это переделать на PERL-е.&lt;br&gt;&lt;br&gt;Но алгоритм всё равно не работает должным образом...&lt;br&gt;&lt;br&gt;Вот фрагмент текста письма, находящегося в файле: ./mail/111&lt;br&gt;&#091;code&#093;Received: (qmail 29944 invoked from network); 8 Jan 2003 07:10:33 -0000&lt;br&gt;Received: from dev212.mailshell.com (HELO mailshell.com) (71.129.195.163)&lt;br&gt;  by dev50.mailshell.com with SMTP; 8 Jan 2003 07:10:33 -0000&lt;br&gt;Received: (qmail 26211 invoked by uid 99); 8 Jan 2003 07:10:33 -0000&lt;br&gt;Message-ID: &amp;lt;20030108071033.15907.qmail&#064;mailshell.com&amp;gt;&lt;br&gt;Received: (qmail 13669 invoked from network); 8 Jan 2003 07:10:31 -0000&lt;br&gt;Received: from unknown (HELO anclsmtp03.myfamily.com) (63.92.90.192)&lt;br&gt;  by www.mailshell.com with SMTP; 8 Jan 2003 07:10:31 -0000&lt;br&gt;Received: from ancnews01 (10.6.8.151) by anclsmtp03.myfamily.com</description>
</item>

<item>
    <title>Bash Скрипт обработка писем или текстовых файлов (L0n3R4ng3r)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8804.html#6</link>
    <pubDate>Fri, 16 Jul 2010 14:11:20 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;ну вот где-то так.. печатал сразу тут так что на ерроры не &lt;br&gt;&amp;gt;&amp;gt;проверял. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;лучше наверное используйте все таки перл. Он точно со всем справится, и &lt;br&gt;&amp;gt;будет довольно удобно. &lt;br&gt;&amp;gt;Ну и почитайте книжку по регулярным выражениям. &lt;br&gt;&amp;gt;Вот регулярное выражение для поиска IP адреса который приведен в этой книге &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;^(&#091;01&#093;?&#092;d&#092;d?&amp;#124;2&#091;0-4&#093;&#092;d&amp;#124;25&#091;0-5&#093;)&#092;.(&#091;01&#093;?&#092;d&#092;d?&amp;#124;2&#091;0-4&#093;&#092;d&amp;#124;25&#091;0-5&#093;)&#092;.(&#091;01&#093;?&#092;d&#092;d?&amp;#124;2&#091;0-4&#093;&#092;d&amp;#124;25&#091;0-5&#093;)&#092;.(&#091;01&#093;?&#092;d&#092;d?&amp;#124;2&#091;0-4&#093;&#092;d&amp;#124;25&#091;0-5&#093;)$ &lt;br&gt;&lt;br&gt;Спасибо за заботу по-поводу книжки по регекспам, но должен вас разочеровать даный регексп не рабочий. Визуально он вроди бы составлен правильно, но на практите это не так: &lt;br&gt;$ echo &apos;1&apos; &amp;#124; perl -ne &apos;/(&#091;01&#093;?&#092;d&#092;d?&amp;#124;2&#091;0-4&#093;&#092;d&amp;#124;25&#091;0-5&#093;)/; print &quot;$1&#092;n&quot;&apos;&lt;br&gt;1&lt;br&gt;$ echo &apos;10&apos; &amp;#124; perl -ne &apos;/(&#091;01&#093;?&#092;d&#092;d?&amp;#124;2&#091;0-4&#093;&#092;d&amp;#124;25&#091;0-5&#093;)/; print &quot;$1&#092;n&quot;&apos;&lt;br&gt;10&lt;br&gt;$ echo &apos;110&apos; &amp;#124; perl -ne &apos;/(&#091;01&#093;?&#092;d&#092;d?&amp;#124;2&#091;0-4&#093;&#092;d&amp;#124;25&#091;0-5&#093;)/; print &quot;$1&#092;n&quot;&apos;&lt;br&gt;110&lt;br&gt;$ echo &apos;232&apos; &amp;#124; perl -ne &apos;/(&#091;01&#093;?&#092;d&#092;d?&amp;#124;2&#091;0-4&#093;&#092;d&amp;#124;25&#091;</description>
</item>

<item>
    <title>Bash Скрипт обработка писем или текстовых файлов (McLeod095)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8804.html#5</link>
    <pubDate>Fri, 16 Jul 2010 13:00:20 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;   print &quot;$ip&#092;n&quot;; # для того чтобы вывести его &lt;br&gt;&amp;gt;   $ip = inet_aton($ip); &lt;br&gt;&amp;gt;   $name  = gethostbyaddr($ip, AF_INET); # для того чтобы &lt;br&gt;&amp;gt;вернуть его доменое имя &lt;br&gt;&amp;gt; &#125; &lt;br&gt;&amp;gt;&#125; &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;ну вот где-то так.. печатал сразу тут так что на ерроры не &lt;br&gt;&amp;gt;проверял. &lt;br&gt;&lt;br&gt;лучше наверное используйте все таки перл. Он точно со всем справится, и будет довольно удобно. &lt;br&gt;Ну и почитайте книжку по регулярным выражениям.&lt;br&gt;Вот регулярное выражение для поиска IP адреса который приведен в этой книге&lt;br&gt;^(&#091;01&#093;?&#092;d&#092;d?&amp;#124;2&#091;0-4&#093;&#092;d&amp;#124;25&#091;0-5&#093;)&#092;.(&#091;01&#093;?&#092;d&#092;d?&amp;#124;2&#091;0-4&#093;&#092;d&amp;#124;25&#091;0-5&#093;)&#092;.(&#091;01&#093;?&#092;d&#092;d?&amp;#124;2&#091;0-4&#093;&#092;d&amp;#124;25&#091;0-5&#093;)&#092;.(&#091;01&#093;?&#092;d&#092;d?&amp;#124;2&#091;0-4&#093;&#092;d&amp;#124;25&#091;0-5&#093;)$&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Bash Скрипт обработка писем или текстовых файлов (L0n3R4ng3r)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8804.html#4</link>
    <pubDate>Thu, 15 Jul 2010 14:26:38 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;символ переноса строки &#092;n  в различных вароиациях (томеж находиться в &lt;br&gt;&amp;gt;начале строки, в середине строки или в конце строки.) А так &lt;br&gt;&amp;gt;же зона обработки должна быть от начала файла, и останавливаться, при &lt;br&gt;&amp;gt;обнаружениии первой пустой строки, как я понял при обнаружении &#092;n&#092;n, а &lt;br&gt;&amp;gt;дальше break в цикле или что т о тому подобное. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Помогите пожалуйста реализовать, хотя бы, эту задачу, можно да же и не &lt;br&gt;&amp;gt;на awk, и даже не на Boerne Shell вообще (например Perl, &lt;br&gt;&amp;gt;Python, C/C++) уже более суток НЕ спал и голова совсем НЕ &lt;br&gt;&amp;gt;соображает уже :( &lt;br&gt;&lt;br&gt;я бы посоветовал использовать perl все таки он изобретен для обработки текста и как никто лучше справляеться с &amp;#1108;той задачей &lt;br&gt;&lt;br&gt;&lt;br&gt;для айпишников цикл будет выглядеть примерно так : &lt;br&gt;&lt;br&gt;&lt;br&gt;use Socket; &lt;br&gt;&lt;br&gt;my $file = &apos;path/to/file&apos;;&lt;br&gt;my &#064;ips;&lt;br&gt;open(FILE,&quot;&amp;lt;$file&quot;);&lt;br&gt;while(&amp;lt;FILE&amp;gt;)&#123;&lt;br&gt; if ( /(&#092;d+&#092;.&#092;d+&#092;.&#092;d+&#092;.&#092;d+)/  )&#123;&lt;br&gt;   my $ip = $1;&lt;br&gt;   &#064;ips = push(&#064;ips,$ip); #для того чтобы поместить айпишник в масив ips(если нужно)&lt;br&gt;   print &quot;$ip&#092;n&quot;; # для</description>
</item>

<item>
    <title>Bash Скрипт обработка писем или текстовых файлов (ILYA INDIGO)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8804.html#3</link>
    <pubDate>Thu, 15 Jul 2010 11:41:48 GMT</pubDate>
    <description>&amp;gt;&amp;gt; dig +short domen.com a &lt;br&gt;&lt;br&gt;Спасибо большое за ответ :)&lt;br&gt;&lt;br&gt;На данный момент у меня код:&lt;br&gt;&#091;code&#093;#!/bin/bash&lt;br&gt;clear&lt;br&gt;DIR=&quot;./mail&quot;&lt;br&gt;find $DIR -type f &amp;#124; while read FILE_NAME;&lt;br&gt;do&lt;br&gt;echo -e &quot;&#092;n$FILE_NAME&quot;&lt;br&gt;echo &quot;domain names:&quot;&lt;br&gt;echo &quot;IPs:&quot;&lt;br&gt;awk &apos;/&#091;0-9&#093;+&#092;.&#091;0-9&#093;+&#092;.&#091;0-9&#093;+&#092;.&#091;0-9&#093;+&#091;&#092;)&#092;&#093;&#093;/ &#123;print substr($NF,2,length($NF)-3)&#125;&apos; $FILE_NAME&lt;br&gt;done&#091;/code&#093;&lt;br&gt;&lt;br&gt;Где вро де бы и решил, частично, вывод всез IP-адресов, но всё же это далеко не идеал.&lt;br&gt;&lt;br&gt;1 Я Используя NF, в качестве разпознователя поля с IP, предпологаю, что IP лежит всегда в конце строки. В большинстве случаев это так, но НЕ всегда.&lt;br&gt;2 Я предпологаю, что IP заключён всегда в круглые скобки, и при показе последнюю закрывающую скобку (последний символ поля) отбрасываю. И это не всегда так :(, так как некоторые IP умудряются быть записанныуми и в таком вот виде (&#091;127,0,0,1&#093;) т.е. заключённые сразу в 2 пары скобок, хотя теоретичиски предпологая, что может и попасться вариант вообще без скобок.&lt;br&gt;3 Так что нужен цикл вывода только IP адресов, читающих их от</description>
</item>

<item>
    <title>Bash Скрипт обработка писем или текстовых файлов (L0n3R4ng3r)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8804.html#2</link>
    <pubDate>Thu, 15 Jul 2010 08:22:56 GMT</pubDate>
    <description>&amp;gt; хотелось бы знать как можно преобразовать домен в IP, например использую ping или что то &amp;gt; подобное.&lt;br&gt;&lt;br&gt;dig +short domen.com a&lt;br&gt;</description>
</item>

<item>
    <title>Bash Скрипт обработка писем или текстовых файлов (ILYA INDIGO)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8804.html#1</link>
    <pubDate>Wed, 14 Jul 2010 18:41:15 GMT</pubDate>
    <description>&#091;code&#093;Received: (qmail 32088 invoked from network); 7 Jan 2003 09:29:25 -0000&lt;br&gt;Received: from dev213.mailshell.com (HELO mailshell.com) (&#064;71.129.195.163)&lt;br&gt;  by dev50.mailshell.com with SMTP; 7 Jan 2003 09:29:25 -0000&lt;br&gt;Received: (qmail 23535 invoked by uid 99); 7 Jan 2003 09:29:25 -0000&lt;br&gt;Received: (qmail 6505 invoked from network); 7 Jan 2003 09:29:24 -0000&lt;br&gt;Received: from unknown (HELO qmail8.arcamax.com) (209.96.210.81)&lt;br&gt;  by www.mailshell.com with SMTP; 7 Jan 2003 09:29:24 -0000&lt;br&gt;Received: (qmail 15185 invoked from network); 7 Jan 2003 09:29:30 -0000&lt;br&gt;Received: from qmail8.arcamax.com (209.96.210.81)&#091;/code&#093;&lt;br&gt;&lt;br&gt;Хочу добавить, что в теле письма IP-адреса находяться в скобках и всегда в конце строки, и возможно что определять их и не нужно, но всё же хотелось бы знать как можно преобразовать домен в IP, например использую ping или что то подобное.&lt;br&gt;&lt;br&gt;Но иногда бывает что перед IP адрессом стоит символ &#064; &#091;code&#093;(&#064;71.129.195.163)&#091;/code&#093;&lt;br&gt;</description>
</item>

</channel>
</rss>
