Използване на tcpdump за прехващане на стринг от писмо

Тук идеята ми е, че на моменти получавам писмо от конкретен адрес ( или не) и съдържанието му е много важно. Толкова важно, че искам да го видя веднага в най- лесния вариант. Да речем че получавам като важно съдържание едно изречение (стринг).

Решението което имам (използвам собствен mail server с root access): Пускам tcpdump да логва всички пакети на 25 порт и след това парствам за конкретния стринг. Ето един много лесен пример за 2 мин:

tcpdump -s 1500 -lXvvi eth3 port 25|awk -F ' ' '{print $10}' >> /tmp/aa.txt

Ето едно малко php което парсва и показва ако го има:

function dhs_lr_str($a,$b,$c,$num=1){$a=explode("$a",$c);$b=explode("$b",$a[$num]);return addslashes(trim($b[0]));};

$buffer=file_get_contents("/tmp/aa.txt");
$buffer=str_replace("\n",",$buffer);
$buffer = preg_replace('#\r?\n#', ", $buffer);
$buffer = preg_replace('/\s\s+/', ' ', $buffer);

preg_match_all("/lqva_chast(.*?)dqsna_chast/", $buffer, $matches);
$search_words=array_unique($matches[1]);

echo "<table border='1'><tr><td><b>N</td><td><b>Link</td></tr>";
foreach ($search_words as $value)
{
$i++;echo "<tr><td><b>$i</td><td>$value</td></tr>";
};
echo "</table>";

Може и с bash:

#Премахва \n
cat /tmp/aa.txt|sed -e :a -e '$!N;s/\n//;ta'  > /tmp/a.txt
#Парсва търсения стринг между "lqva_chast" X "dqsna_chast"
cat /tmp/a.txt|awk -F 'lqva_chast' '{print $2}'|awk -F 'dqsna_chast' '{print $1}'

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Автоматично валидиране на html код с php5 tidy

Кратък пример как може да се фиксне или валидира html с php5 tidy:

$tidy = new Tidy();
$options = array('show-body-only'=>true);

$tidy->parseString('<div><b>Martin</b></b> Petrov',$options);
$tidy->cleanRepair();
echo $tidy;

Изходът е:

<div><b>Martin</b> Petrov</div>

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Конфигуриране на мрежова карта за DHCP под Debian

Един приятел  с Debian си сложил статични настройки на мрежовата карта, но сега иска те да се взимат по DHCP. Преди да направим да си взима адреса по DHCP ще покажа как е при статичния метод:

Файл: /etc/network/interfaces

auto eth4
allow-hotplug eth4
iface eth4 inet static
address 172.16.30.4
netmask 255.255.255.0
network 172.16.30.1
broadcast 172.16.37.255
gateway 172.16.30.1

Сега ще ви покажа как се прави да си взима адреса по DHCP:

auto eth4
iface eth4 inet dhcp

Това е всичко.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Инсталиране на Flash плъгин за Firefox без root права

Тук идеята става ясна от заглавието- Целта е да се инсталира Flash плъгин без root права. За целта трябва да се направи следното:

mkdir ~/.mozilla/plugins/

Необходимо е да се изтегли архивчето с flash:

wget http://miwi.homeunix.com/install_flash_player_10_linux.tar.gz

И да копирате so файла на flash (install_flash_player_10_linux.tar.gz):

cp install_flash_player_10_linux.tar/flashtemp/libflashplayer.so ~/.mozilla/plugins/

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Публикации за GNU/Linux от семинара преди години

Преди 4-5 години с приятели направихме в гр. Добрич GNU/Linux семинар на тема "GNU/Linux? Да той е чудесен за работна станция" и щяхме да публикуваме подготвените материали от нас за семинара, но така и не го направихме. Днес в един форум (уебмастербг) видях един пич които беше заинтересуван и това реално ме проворика да ги издиря и публикувам за да са полезни на него и всички които търсят информация(Надявам се да бъдат полезни. Макар и малко старички някои неща от тях не остаряват като рибите).

Реших да ги публикувам в kakvo.org за да бъдат прочетени от повече хора и надявам се повече хора да мигрират към свободата. Ето ги и материалите:

GNU/Linux -- автор Мартин Петров
GNU/Linux Дистрибуции -- автор Мартин Петров
Умения за инсталиране на Gnu/Linux -- автор Мартин Петров
Основните команди за работа с Гну/Линукс -- автор Мартин Петров
KDE-- автор Милен Неделчев
Графични среди под GNU/Linux -- автор Георги Георгиев
Примерна инсталация на Fedora Core 4-- автор Андон Николов
GNU Движение за Отворен код/ Въведение в свободният софтуер. -- автор Георги Георгиев
Положителни и отрицателни черти на Gnu/Linux -- автор Мартин Петров
Историята на GNOME -- автор Георги Георгиев

Снимки от семинара(реших и тях да публикувам): Снимки от семинара

PS: Ако съм объркал някои като автор Андо, Гоше, Миленски кажете ще го фиксна веднага!.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Спиране на Crash Recovery Restore Session във Firefox

В едно приложение постоянно се налага да се kill-не Firefox и след като се пусне (или съживи лисичката) излиза прозорче в което да се избере нова сесия или да се върне старата преди kill-а. Аз не се нуждая от Crash Recovery Restore Session и за целта ще го махна по следния начин(става и във GUI настройките).

Ето го първо прозорчето което искам да се премахне:

Сега ще опиша как се маха прозорчето:

1. Стартирам Firefox
2. В адрес бара пиша: "about:config"
3. Намирам "browser.sessionstore.resume_from_crash" и натискам два пъти бързу в/у него(Идеята е да бъде false)

Ето и снимка на "супер сложното обяснение" по- горе:

PS: Изображенията са взети от google images :)

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Проверяване за логин от PHP при htaccess auth

Идеята е при нормален htaccess логин да се провери от php дали конкретния потребител се е логнал. Понеже в това приложение ще има само един потребител и за мен няма смисъл да се пише или добавя акаунтинг система това е добро решение. Понеже този логнат потребител ще вижда различни неща от нормалния потребител реших да ползвам ето този метод за проверка:

function check_user_login($auth_user,$auth_pass)
{
$get_auth_user=$_SERVER['PHP_AUTH_USER'];
$get_auth_pass=$_SERVER['PHP_AUTH_PW'];
if (   ($get_auth_user == $auth_user) || ($get_auth_pass == $auth_pass)    ) { return true; } else { return false; };
};

По този начин ако се логнем в админ панела (auth минава през apache htaccess) то това ще върне true;

Едно просто, но функционално решение за конкретния случай пестящо доста време и други ресурси.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Logout бутон при htaccess оторизация

Доста хора използват htaccess за оторизация до съответния ресурс, но не много хора знаят как може да се направи LogOut бутон от този ресурс. Всички знаят как можем само през URL да въвеждаме username и pass на htaccess оторизация(не е точно правилно така да се казва, но аз така ще казвам тук). Пример: "http://username:[email protected]/admin" .

Сега в нашият "админ панел" правим един линк към "http://FAKEuser:[email protected]/admin" По този начин ще се нулира предното въвеждане на коректните данни и така ще се изискват отново потребителско име и парола. Ако искаме след LogOut да ни редиректне към главния домейн, а не към админ панела ето пример: "http://FAKEuser:[email protected]" .

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Използване на оторизация при file_get_contents()

Понеже не видя ясно обяснено решението за използване на оторизация при file_get_contents() реших да напиша тази публикация. Решението както винаги е супер "сложно" :)

Проблемът е, че когато при защитена директория от Apache с user и pass искате да ползвате file_get_contents той няма да направи това което очаквате. Т.е. ще ви изведе грешка:

<b>Warning</b>:  file_get_contents(http://example.com/test.php) [<a href="function.file-get-contents">function.file-get-contents</a>]: failed to open stream: HTTP request failed! HTTP/1.1 401 Authorization Required

Това се дължи на факта, че изпълнението на file_get_contents преминава през оторизиращата частица и ако не се зададат user и pass като аргументи няма да извърши очакваното. Стига приказки, че написах повече обяснения от колкото е голямо "решението":

$auth = stream_context_create(array( 'http' => array('header'  => "Authorization: Basic " . base64_encode("USERNAME:PASSWORD"))));

print file_get_contents("http://example.com/test.php",false,$auth);

Това е всичко :)

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Един велик рокаджия си отиде. Сбогом РОНИ!

Големият рок певец Рони Джеймс Дио загуби борбата с рака.

На официалния сайт на певеца неговата съпруга Уенди е публикувала следното съобщение: „Днес сърцето ми е разбито. Рони почина в 7:45 сутринта на 16 май. Много приятели и близки успяха насаме да му кажат довиждане, преди да си отиде. Рони знаеше колко е обичан от всички. Оценяваме помощта и подкрепата, която вие ни давахте. Моля, дайте ни няколко дена спокойствие и уединение, докато се справим с тази ужасна загуба. Знайте, че той обичаше всички вас и неговата музика ще живее вечно".

Рони Джеймс Дио (с истинското име Роналд Падавона) бе певец с уникален глас и уникален текстописец -- една от легендите на рока и хеви-метала.

Той беше част от групите Elf, Rainbow, Black Sabbat, Dio и Heaven&Hell, с които трябваше да гостува в България за фестивала Sofia Rocks 2010.
Източник: 24 часа.

Поздрав за всички:

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Личен Блог на Мартин Петров