ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

22.02.2008, 22:33
|
|
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме: 3986705
Репутация:
1403
|
|
C:\Perl\bin>perl scr/reg.pl
Bareword found where operator expected at scr/reg.pl line 6, near "m/<A>(.+)<(ba
ckslash)/A"
Unquoted string "backslash" may clash with future reserved word at scr/reg.pl li
ne 8.
syntax error at scr/reg.pl line 6, near "m/<A>(.+)<(backslash)/A"
Search pattern not terminated at scr/reg.pl line 8.
А не легче экранировать?
<\/DIV>
my $s='<html> <head> <title>PERL regexp</title> </head>
<body> <h1>File where I serach text</h1>
<DIV>I NEED THIS TEXT</DIV>
</body>
</html>';
print "Result : $1 " if $s=~/<DIV>(.+)<\/DIV>/;
Более ч0ткий пример (c) demonoid
Последний раз редактировалось bul.666; 22.02.2008 в 22:39..
|
|
|

22.02.2008, 22:46
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
Сообщение от bul.666
C:\Perl\bin>perl scr/reg.pl
Bareword found where operator expected at scr/reg.pl line 6, near "m/<A>(.+)<(ba
ckslash)/A"
Unquoted string "backslash" may clash with future reserved word at scr/reg.pl li
ne 8.
syntax error at scr/reg.pl line 6, near "m/<A>(.+)<(backslash)/A"
Search pattern not terminated at scr/reg.pl line 8.
бугага. в теге [php] бэкслеши '\' не отображаются, поэтому я заменил его словом. еще раз бугага
|
|
|

22.02.2008, 22:47
|
|
Members of Antichat - Level 5
Регистрация: 09.10.2006
Сообщений: 1,698
Провел на форуме: 9098076
Репутация:
4303
|
|
ыыы, backslash
\/
|
|
|

22.02.2008, 23:02
|
|
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме: 3986705
Репутация:
1403
|
|
Пиф ты вообще свой код проверял? Меня очень сильно возбудила 8 линия ^^ +)
Последний раз редактировалось bul.666; 22.02.2008 в 23:07..
|
|
|

22.02.2008, 23:26
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
s/<A (.+)<(backslash)/A>//igs;
вот так =)
это если надо тереть линки.
я просто немного переписал твой код. я хз че он должен делать =))
|
|
|

23.02.2008, 03:20
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
Код:
s/<A (.+)\\/A>//igs;
|
|
|

23.02.2008, 03:58
|
|
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме: 3986705
Репутация:
1403
|
|
Он должен выдерать текст между <div> и </div>
|
|
|

23.02.2008, 04:49
|
|
Участник форума
Регистрация: 08.10.2007
Сообщений: 259
Провел на форуме: 500748
Репутация:
137
|
|
как понял начало нужно написат парсер выдирающий из страницы нужное нам значение.
возбмём в пример яндэкс например нам нужно узнать значение id из этой строки (17 строка ответа)
</script><table id=head><tr> итд .....
и отправить запрос с этим значением запрос скажем запрос будет
http://www.yandex.ru/yandsearch?text=значение
Код:
use Socket;
$host="www.yandex.ru";
$port="80";
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
$iaddr = inet_aton($host);
$paddr = sockaddr_in($port, $iaddr);
connect(SOCK, $paddr);
send (SOCK, "GET / HTTP/1.0\n\n", 0);
@data=<SOCK>; # ответ сервера
close(SOCK);
$fullitself=@data[17]; # считаем в какой строке ответа нужное нам значение она 17тая
@temp=split('table id=',$fullitself); # table id= это символы которые идут перед нашим значением
@semp=split('>',@temp[1]); # > а этот символ после нашего значения
$id = @semp[0]; # и так наше значение это переменная $id
connect(SOCK, $paddr);
send (SOCK, "GET /yandsearch?text=",$id," HTTP/1.0\n\n", 0); #отправляем запрос
@data2=<SOCK>;
close(SOCK);
# извените если гденибуть ошибся, не проверял
но вот если позиция строки постоянно меняется в ответе нужно будет ещё писать цикл который будет находить эту строку переберая каждую в этом массиве.
но намного легче это будет реализовать в пхп так как там есть специальная функция которая исчет ключ по значению array_search(" значение", $массив);
Последний раз редактировалось ZET36; 23.02.2008 в 05:15..
|
|
|

23.02.2008, 05:04
|
|
Участник форума
Регистрация: 08.10.2007
Сообщений: 259
Провел на форуме: 500748
Репутация:
137
|
|
и к тому же поле "Город" там нефильтруется. активнаяя хсс
|
|
|

23.02.2008, 08:55
|
|
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме: 3986705
Репутация:
1403
|
|
Код:
use Socket;
$host="www.yandex.ru";
$port="80";
$NEED_STR = "<table id=__STRING__>"; #Строка поиска
@parse_need = split("__STRING__",$NEED_STR);
#print @parse_need[1];
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
$iaddr = inet_aton($host);
$paddr = sockaddr_in($port, $iaddr);
connect(SOCK, $paddr);
send (SOCK, "GET / HTTP/1.0\n\n", 0);
@data=<SOCK>;
close(SOCK);
$size = @data;
for ($i=0;$i<$size;$i++) {
$fullitself=@data[$i];
@temp=split(@parse_need[0],$fullitself);
@semp=split(@parse_need[1],@temp[1]);
$id = @semp[0];
}
if ($id) {
print "\n\n[!] FOUND STRING: '$id'\n\n";
}else {
print "\n\n[!] NOT FOUND\n\n";
}
Вот кстати небольшой тюнинг твоего скриптенга:
$NEED_STR = "<table id=__STRING__>";
Тут вводишь строку которую надо искать;
__STRING__ Отмечено место, где будет выдран текст для вставки в $id
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
BookS: PHP, PERL, MySQL, JavaScript, HTML, ajax, Веб Дизайн
|
M1nK0 |
PHP, PERL, MySQL, JavaScript |
10 |
27.06.2009 21:35 |
|
Books Perl
|
FRAGNATIC |
PHP, PERL, MySQL, JavaScript |
0 |
11.08.2005 16:58 |
|
Безопасность приложений на Perl
|
k00p3r |
Чужие Статьи |
0 |
12.06.2005 09:39 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|