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

08.01.2010, 21:31
|
|
Участник форума
Регистрация: 12.06.2009
Сообщений: 108
Провел на форуме: 1382717
Репутация:
54
|
|
Сообщение от Kusto
То admink1 Вернулся я, держи свой cкрипт
результат вот такой:
Код:
Выводим 0 -ый раз :
1
2
3
Выводим 1 -ый раз :
4
5
7
Выводим 2 -ый раз :
8
9
10
блин, как я понимаю он выводит подмассивами, а некаждую строку отдельно.
ps нужно чтоб вывел вначале 1, потом 2, 3. при следующем повторе цикла вначале 4, потом 5, 6
спасибо, и сорри за настойчивость 
|
|
|

08.01.2010, 21:41
|
|
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
Провел на форуме: 1698585
Репутация:
818
|
|
Есть у когонить пример авторизации на Yandex.ru ?
Когда-то писал, сейчас незнаю работает или нет, проверь.
PHP код:
function login($login,$pass)
{
$ch = curl_init('https://passport.yandex.ru/passport?mode=auth');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3');
curl_setopt($ch, CURLOPT_REFERER, 'https://passport.yandex.ru/passport?mode=auth');
curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'cook.txt');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "login=$login&passwd=$pass");
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$res = curl_exec($ch);
if(preg_match('#https:\/\/passport\.yandex.ru\/passport\?mode=logout#',$res))
return true;
}
|
|
|

08.01.2010, 21:44
|
|
Moderator - Level 7
Регистрация: 04.02.2007
Сообщений: 554
Провел на форуме: 7518056
Репутация:
1089
|
|
Сообщение от admink1
блин, как я понимаю он выводит подмассивами, а некаждую строку отдельно.
ps нужно чтоб вывел вначале 1, потом 2, 3. при следующем повторе цикла вначале 4, потом 5, 6
спасибо, и сорри за настойчивость 
если честно- я ничего непонял область применения что хочеш, опиши подробнее- вернусь- попробую помоч если пойму что требуеться
и прекращайте пользоваться count намного проще организовываеться цикл до тех пор пока в файле невстретиться конец файла ну типа такого while(!feof($k))
Последний раз редактировалось Kusto; 08.01.2010 в 21:48..
|
|
|

08.01.2010, 22:08
|
|
Участник форума
Регистрация: 12.06.2009
Сообщений: 108
Провел на форуме: 1382717
Репутация:
54
|
|
Сообщение от Kusto
если честно- я ничего непонял область применения что хочеш, опиши подробнее- вернусь- попробую помоч если пойму что требуеться
и прекращайте пользоваться count намного проще организовываеться цикл до тех пор пока в файле невстретиться конец файла ну типа такого while(!feof($k))
есть текстовик со следующим содержимым:
1
2
3
4
5
6
..etc
мне нужно чтоб заходил в текстовик выдергивал первую строчку(то есть цифру 1) и заходил по ссылке, допустим ttp://vkontakte.ru/id1 , потом брал вторую строчку(цифру 2), заходил на ttp://vkontakte.ru/id2, потом заходил ttp://vkontakte.ru/id3 и здесь цикл заканичвал свою работу и начинает работать другой цикл, ну после того как вновь вернемся к нашему циклу он выполнил ту же операцию, но уже начиная с четвертой строчкой(цифра 4), то есть совершил по очереди переходы:
ttp://vkontakte.ru/id4
ttp://vkontakte.ru/id5
ttp://vkontakte.ru/id6
и закончил свою работу.
|
|
|

08.01.2010, 22:16
|
|
Познающий
Регистрация: 20.12.2008
Сообщений: 76
Провел на форуме: 432982
Репутация:
6
|
|
PHP код:
<?php
$port = 10001;
// create a streaming socket, of type TCP/IP
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// set the option to reuse the port
socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1);
// "bind" the socket to the address to "localhost", on port $port
// so this means that all connections on this port are now our resposibility to send/recv data, disconnect, etc..
socket_bind($sock, 0, $port);
// start listen for connections
socket_listen($sock);
// create a list of all the clients that will be connected to us..
// add the listening socket to this list
$clients = array($sock);
while (true) {
// create a copy, so $clients doesn't get modified by socket_select()
$read = $clients;
// get a list of all the clients that have data to be read from
// if there are no clients with data, go to next iteration
if (socket_select($read, $write = NULL, $except = NULL, 0) < 1)
continue;
// check if there is a client trying to connect
if (in_array($sock, $read)) {
// accept the client, and add him to the $clients array
$clients[] = $newsock = socket_accept($sock);
// send the client a welcome message
socket_write($newsock, "Hello, this is welcome message\n".
"There are ".(count($clients) - 1)." client(s) connected to the server\n");
socket_getpeername($newsock, $ip);
echo "New client connected: {$ip}\n";
// remove the listening socket from the clients-with-data array
$key = array_search($sock, $read);
unset($read[$key]);
}
// loop through all the clients that have data to read from
foreach ($read as $read_sock) {
// read until newline or 1024 bytes
// socket_read while show errors when the client is disconnected, so silence the error messages
$data = @socket_read($read_sock, 1024, PHP_NORMAL_READ);
// check if the client is disconnected
if ($data === false) {
// remove client for $clients array
$key = array_search($read_sock, $clients);
unset($clients[$key]);
echo "client disconnected.\n";
// continue to the next client to read from, if any
continue;
}
// trim off the trailing/beginning white spaces
$data = trim($data);
// check if there is any data after trimming off the spaces
if (!empty($data)) {
// send this to all the clients in the $clients array (except the first one, which is a listening socket)
foreach ($clients as $send_sock) {
// if its the listening sock or the client that we got the message from, go to the next one in the list
if ($send_sock == $sock || $send_sock == $read_sock){
//continue;
if ($data == 'shutdown') {
socket_write($send_sock, "Ololo"."\n");
}
}
// write the message to the client -- add a newline character to the end of the message
//socket_write($send_sock, $data."\n");
//echo($data."\n");
} // end of broadcast foreach
echo($data."\n");
// if ($data == 'shutdown') {
// socket_write($send_sock, "Ololo"."\n");
//}
}
} // end of reading foreach
}
// close the listening socket
socket_close($sock);
?>
Почему если я с какого либо клиента отсылаю shutdown, то пишет:
Код:
Warning: socket_write(): unable to write to socket [0]: ╟ряЁюё эр юЄяЁртъє шыш я
юыєўхэшх фрээ√ї (when sending on a datagram socket using a sendto call) no addr
ess was supplied.
in D:\xampp\htdocs\test2.php on line 77
Однако сообщение Ololo приходит. Мне надо чтобы я с 1 клиента отсылал например сообщение shutdown, а скрипт мне в ответ слал Ololo, т.е. чтобы Ololo приходило тому клиенту кто отсылает скрипту shutdown и только ему.
P.S. выручайте новичка, с меня +
Если надо, то вот оригинальный скрипт:
PHP код:
<?php
$port = 9050;
// create a streaming socket, of type TCP/IP
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// set the option to reuse the port
socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1);
// "bind" the socket to the address to "localhost", on port $port
// so this means that all connections on this port are now our resposibility to send/recv data, disconnect, etc..
socket_bind($sock, 0, $port);
// start listen for connections
socket_listen($sock);
// create a list of all the clients that will be connected to us..
// add the listening socket to this list
$clients = array($sock);
while (true) {
// create a copy, so $clients doesn't get modified by socket_select()
$read = $clients;
// get a list of all the clients that have data to be read from
// if there are no clients with data, go to next iteration
if (socket_select($read, $write = NULL, $except = NULL, 0) < 1)
continue;
// check if there is a client trying to connect
if (in_array($sock, $read)) {
// accept the client, and add him to the $clients array
$clients[] = $newsock = socket_accept($sock);
// send the client a welcome message
socket_write($newsock, "no noobs, but ill make an exception :)\n".
"There are ".(count($clients) - 1)." client(s) connected to the server\n");
socket_getpeername($newsock, $ip);
echo "New client connected: {$ip}\n";
// remove the listening socket from the clients-with-data array
$key = array_search($sock, $read);
unset($read[$key]);
}
// loop through all the clients that have data to read from
foreach ($read as $read_sock) {
// read until newline or 1024 bytes
// socket_read while show errors when the client is disconnected, so silence the error messages
$data = @socket_read($read_sock, 1024, PHP_NORMAL_READ);
// check if the client is disconnected
if ($data === false) {
// remove client for $clients array
$key = array_search($read_sock, $clients);
unset($clients[$key]);
echo "client disconnected.\n";
// continue to the next client to read from, if any
continue;
}
// trim off the trailing/beginning white spaces
$data = trim($data);
// check if there is any data after trimming off the spaces
if (!empty($data)) {
// send this to all the clients in the $clients array (except the first one, which is a listening socket)
foreach ($clients as $send_sock) {
// if its the listening sock or the client that we got the message from, go to the next one in the list
if ($send_sock == $sock || $send_sock == $read_sock)
continue;
// write the message to the client -- add a newline character to the end of the message
socket_write($send_sock, $data."\n");
} // end of broadcast foreach
}
} // end of reading foreach
}
// close the listening socket
socket_close($sock);
?>
|
|
|

08.01.2010, 23:06
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
Maxxxtri23 Все ж подписано и каждая строчка прокомментирована >.<
Проблема тут: if ($send_sock == $sock || $send_sock == $read_sock) Скрипт просматривает все сокеты из массива и ищет два: сокет, который принимает новых пользователей и собственно отправителя текущего сообщения. Условия следует разделить - сокет для принятия всегда пропускать. А отправителю слать соответствующее сообщение
PHP код:
if ($send_sock = $sock) continue;
if ($send_sock = $read_sock) socket_write($send_sock, "olololo\n");
Kusto Накладные расходы (памяти/процессора) на подсчет количества элементов в массиве - меньше (естественно, если не загонять подсчет в условие окончания цикла), чем использование foreach
admink1 Либо вы несете чушь и сами не понимаете чего хотите, либо не формулируете до конца задачу. Зачем использовать вложенные циклы, если можно последовательно считывать и обращаться к соответствующим страницам? В чем принципиальная важность второго цикла?
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
Последний раз редактировалось Gifts; 08.01.2010 в 23:20..
|
|
|

08.01.2010, 23:48
|
|
Moderator - Level 7
Регистрация: 04.02.2007
Сообщений: 554
Провел на форуме: 7518056
Репутация:
1089
|
|
Сообщение от admink1
мне нужно чтоб заходил в текстовик выдергивал первую строчку(то есть цифру 1) и заходил по ссылке, допустим ttp://vkontakte.ru/id1 , потом брал вторую строчку(цифру 2), заходил на ttp://vkontakte.ru/id2, потом заходил ttp://vkontakte.ru/id3 и здесь цикл заканичвал свою работу и начинает работать другой цикл, ну после того как вновь вернемся к нашему циклу он выполнил ту же операцию, но уже начиная с четвертой строчкой(цифра 4), то есть совершил по очереди переходы:
ttp://vkontakte.ru/id4
ttp://vkontakte.ru/id5
ttp://vkontakte.ru/id6
и закончил свою работу.
так в чем проблемма? то-же самое практически
PHP код:
<?php
$k = file('name.txt');
$a=array_chunk($k,3);
foreach ($a as $c => $d){
echo " </br>цикл работает $c -ый раз : </br></br>";
foreach ($d as $f) echo " суперссылкавконтакта и id=$f </br> ";
?>
вот результат его работы
цикл работает 0 -ый раз :
суперссылкавконтакта и id= 25
суперссылкавконтакта и id=456
суперссылкавконтакта и id=789
цикл работает 1 -ый раз :
суперссылкавконтакта и id=425
суперссылкавконтакта и id=456
суперссылкавконтакта и id=7851
цикл работает 2 -ый раз :
суперссылкавконтакта и id=54698
суперссылкавконтакта и id=52145
суперссылкавконтакта и id=25469
цикл работает 3 -ый раз :
суперссылкавконтакта и id=58742
суперссылкавконтакта и id=87542
суперссылкавконтакта и id=12458
цикл работает 4 -ый раз :
суперссылкавконтакта и id=12458
Последний раз редактировалось Kusto; 08.01.2010 в 23:50..
|
|
|

09.01.2010, 01:08
|
|
Участник форума
Регистрация: 12.06.2009
Сообщений: 108
Провел на форуме: 1382717
Репутация:
54
|
|
Сообщение от Gifts
admink1 Либо вы несете чушь и сами не понимаете чего хотите, либо не формулируете до конца задачу. Зачем использовать вложенные циклы, если можно последовательно считывать и обращаться к соответствующим страницам? В чем принципиальная важность второго цикла?
полная задача такова:
1. нужно выдернуть акк из файла.
2. залогиниться.
3. выдернуть из другого текстовика три первые ссылки(1,2,3 строчки)
4. по очереди пройтись по этим трем ссылкам и написать текст.
5. поменять акк
6. залогинится
7. и вновь выдернть из текстовика три последующие ссылки(4,5,6 строчки) и написать текст.
//сделал все , кроме 7ого пункта, получается что всегда по всему файлу проходится, а как хотелось бы не получается 
|
|
|

09.01.2010, 01:13
|
|
Постоянный
Регистрация: 06.04.2009
Сообщений: 383
Провел на форуме: 1288105
Репутация:
328
|
|
PHP код:
<object width="425" height="344">
<param name="movie" value="http://www.youtube.com/v/1bOqXOTYeh8&hl=ru_RU&fs=1&rel=0"></param>
<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/1bOqXOTYeh8&hl=ru_RU&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed>
</object>
а вариант не перегружая страницу видео из ютуб менять при нажатие на ссылку скриптом ява или пхп , какой ни будь функцией, на пример:
<a href="domen/video/" onClick="video(url);"> ссылка</a>
фотки могу так менять , а вот с видео проблемка 
Последний раз редактировалось REBUUS; 09.01.2010 в 01:21..
|
|
|

09.01.2010, 01:24
|
|
Moderator - Level 7
Регистрация: 04.02.2007
Сообщений: 554
Провел на форуме: 7518056
Репутация:
1089
|
|
Сообщение от admink1
полная задача такова:
1. нужно выдернуть акк из файла.
2. залогиниться.
3. выдернуть из другого текстовика три первые ссылки(1,2,3 строчки)
4. по очереди пройтись по этим трем ссылкам и написать текст.
5. поменять акк
6. залогинится
7. и вновь выдернть из текстовика три последующие ссылки(4,5,6 строчки) и написать текст.
//сделал все , кроме 7ого пункта, получается что всегда по всему файлу проходится, а как хотелось бы не получается 
сразу говорю этот скрипт я не проверял- но в таком виде должно пахать (как я понял у тя два текста в одном логины и пароли в другом айди)
PHP код:
<?php
$k = file('id.txt');
$x= file('name.txt');
$a=array_chunk($k,3);
foreach ($a as $c => $d){
echo " </br> $x[$c] дернули первый акк и залогинились</br></br>";
foreach ($d as $f) echo " суперссылкавконтакта и id=$f </br> ";
}
?>
там где строчка
PHP код:
echo " </br> $x[$c] дернули первый акк и залогинились</br></br>";
можеш вставлять людые действия (логиниться, и т д)
а в этой строчке
PHP код:
foreach ($d as $f) echo " суперссылкавконтакта и id=$f </br> ";
отправляй сообщения и т д)
И дай ответ работает или нет? (и пускай тебя foreach несмущает- внутри него тоже можно производить любые операции как в любом- другом цикле)
Я непойму что тебя смущало в предыдущих вариантах- практически они все были рабочие просто я по мере твоих обьяснений добавлял все новое и новое, лично я как бы сделал
- составил функцию и внутри циклов бы ее вызывал, я вообще невижу никаких проблемм (непойму что тебя смущает в предложенныхвариантах)
Последний раз редактировалось Kusto; 09.01.2010 в 03:34..
|
|
|
|
 |
|
|
Здесь присутствуют: 7 (пользователей: 0 , гостей: 7)
|
|
|
|