A PHP Error was encountered

Severity: 8192

Message: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.

Filename: mysql/mysql_driver.php

Line Number: 303

Отправка ICQ сообщений на PHP

Отправка ICQ сообщений на PHP

Автор: Mowshon.
Опубликовано 18 августа 2011
в рубрике PHP, Примеры

Просмотров: 6976.
Подписаться на комментарии по RSS.

Отправка ICQ сообщений на PHP

Сейчас мы рассмотрим способ, как отправить сообщения на ICQ с помощью PHP. Скрипт достаточно маленький и удобный. Есть два файла connect-uin.txt(логин и пароль от uin) и send-uin.txt(список uin которые получат сообщение). Этот скрипт был написан для одной фирмы, она рассылала уведомления своим клиентам. Данный скрипт предназначен исключительно в ознакомительных целях и для собственных "легальных" идей.


Какие возможности имеет скрипт?

1. Можно ввести неограниченное кол-во UIN номеров к которым будет подключатся скрипт.

каждый UIN и его пароль, берутся случайно из файла connect-uin.txt

Для больших рассылок, лучше использовать несколько UIN номеров (в избежании бана)

2. Можно ввести неограниченный список UIN номеров, на которых будет отправлено сообщение.

3. Указывается время (в сек.) ожидания после отправки сообщения (в избежании бана)

4. Нет проблем с кодировкой текста

Скачать ICQ-BOT


Как он работает?

Скрипт получает один UIN из файла connect-uin.txt, подключается к нему.

Читает список uin номеров из файла send-uin.txt и отправляет сообщения с интервалом между ними в секунды или минуты(зависит какое значение указали вы)

Рассмотрим что в архиве

/connect-uin.txt

Хранит в себе список всех UIN и паролей к ним в виде UIN;Password с новой строки

1000000;password
9000000;qwerty123

/send-uin.txt

Список UIN которые получат сообщение, с новой строки

1235621351
4256562153

/libs/WebIcqLite.class.php

Класс для отправки ICQ сообщении, автор: Сергей Акудович

/icq.php

Данный файл нужно открывать в адресной строке для выполнения скрипта

http://ваш-сайт.com/папка где скрипт/icq.php

<?php
/**	---------------------------------------
 **	Пример скрипта для отправке писем в ICQ
 **	Источник: live-code.ru
 **	---------------------------------------
 **/
 
// Убираем лимит на выполнение скрипта
set_time_limit(0); 
// Сколько сек. ждать после последней отправке
$sleep = 45; // в сек.
// Список UIN номеров для подключения
// UIN;PASSWORD
$Connect_list = file('connect-uin.txt');
// Список UIN на которые будет отправлены сообщения
// UIN
$Send_list = file('send-uin.txt');
// Подключаем класс WebIcqLite
include('libs/WebIcqLite.class.php');
## текст сообщения
$text = "Здравствуйте, я ICQ бот написанный на PHP";
// ICQ принимает текст в windows-1251
$text = iconv('utf-8', 'windows-1251', $text);
// Создаем класс
$icq = new WebIcqLite();
foreach($Send_list as $k) {
	// Выбирает рандом UIN для отправки сообщения (в избежании бана)
	$Choose_uin = $Connect_list[rand(0, count($Connect_list)-1)];
	$Connect_data = explode(";", $Choose_uin);
	$uin = $Connect_data[0];
	$pas = $Connect_data[1];
	// Подключаемся
	sleep($sleep);
	if($icq->connect($uin, $pas)){
		// Отправляем сообщение
		$send = $icq->send_message($k, $text);
		if(!$send) {
			// Если возникла ошибка, мы получем её текст
			echo $k." - ".$icq->error."<br />";
		}
		 else{
			// Если письмо удачно отправлено, мы увидем этот текст
			echo $k.' Message sent! <br />';
		 }
		 
		// Закрываем подключение к UIN
		$icq->disconnect();
	}
	 else {
		// Если не удалось подключится, мы увидем этот текст
		echo $k." - ".$icq->error."<br />";
	 }
}
?>

Весь код прокомментирован и работает. Если у вас будут вопросы пишите в комментариях ниже, я вам отвечу!

Комментариев: 27

  1. Аноним | 23.08.2011 в 21:58:43 | #1

    Спасибо за скрипт!

    Давно писал что то подобное но так и не работал :D

    Попробовал ваш пример, работает!

  2. Mowshon | 24.08.2011 в 12:42:43 | #2

    Пример рабочий, для определенного круга задач он хорош.

  3. Munhead | 27.09.2011 в 21:36:58 | #3

    Спасибо за скрипт, теперь заспамлю аськи рекламой :D

  4. Mowshon | 28.09.2011 в 00:46:03 | #4

    Munhead, Вы в праве использовать его как хотите smile данный скрипт является примеров как можно отправлять сообщения из PHP на ICQ.

  5. Комментатор 4 | 01.11.2011 в 13:26:41 | #5

    А как запустить скрипт? что он начал работать? smile

  6. Комментатор 4 | 01.11.2011 в 13:27:06 | #6

    Точнее чтоб начал отправлять сообщения smile

  7. Mowshon | 01.11.2011 в 19:48:22 | #7

    1. Скачиваем архив

    2. В файле connect-uin.txt вписываем логин;пароль(UIN;Password)

    3. В файле send-uin.txt хранятся списки UIN номеров которые получат сообщение

    4. $text = "Здравствуйте, я ICQ бот написанный на PHP";

    В самом коде редактируем текст сообщения.

    - Запускаем скрипт на компьютере или на хостинге с поддержкой PHP

  8. Комментатор 4 | 02.11.2011 в 11:43:05 | #8

    Да я знаю не дурак, а как его запустить? вот в чем вопрос... Перехожу по icq.php ошибку выдает.... СКРИПТ НЕ ЗАПУСКАЕТ..

  9. Mowshon | 02.11.2011 в 17:09:48 | #9

    Напишите тут текст ошибки.

  10. Комментатор 4 | 06.11.2011 в 10:59:32 | #10

    Если возможно перепишите пожалуйста скрипт под класс: WebIcqPro

  11. Mowshon | 09.11.2011 в 18:01:13 | #11

    WebIcqLite выполняет все требования для текущего функционала.

    В данном примере нет возможности например "Прочтение ответных сообщений" который поддерживает класс WebIcqPro. Подумаю насчет статьи с расширенном функционалом под WebIcqPro.

  12. Комментатор 4 | 10.11.2011 в 14:20:10 | #12

    Просто говорят что WebIcqLite не работает.. smile

  13. Mowshon | 10.11.2011 в 23:54:55 | #13

    Я когда писал скрипт, проблем с классом WebIcqLite не возникало. Если Вас так сильно интересует работа скрипта исключительно под WebIcqPro, я постараюсь в кратчайшие сроки написать скрипт и статью с использованием функционала данного класса.

  14. Комментатор 4 | 12.11.2011 в 13:54:11 | #14

    Буду очень благодарен =)

  15. Аноним | 20.12.2011 в 19:16:54 | #15

    такие вот сообщения в браузере, никакого коннекта и никакой отправки не происходит:

    Warning: socket_connect() [function.socket-connect]: unable to connect [110]: Connection timed out in /libs/WebIcqLite.class.php on line 399

    Warning: socket_last_error() expects parameter 1 to be resource, null given in /libs/WebIcqLite.class.php on line 402

  16. Mowshon | 23.12.2011 в 18:48:24 | #16

    Аноним, скрипт был запущен на локальной машине или на хостинге?

    На хостинге могут стоять ограничение сокетов.

  17. Василий | 21.01.2012 в 13:04:43 | #17

    Полезная фишка! Спасибо

  18. Mowshon | 21.01.2012 в 14:01:44 | #18

    Василий, пользуйтесь wink

  19. Serj | 06.02.2012 в 13:47:27 | #19

    Что то не работает... Долго думает и в конце 502 выдаёт или uin banned.

    Скажите в данный момент этот скрипт актуален?

  20. Dart | 02.04.2012 в 16:51:32 | #20

    ЗАпускаю скрипт, первый раз не пошёл, подправил порт авторизации( у меня зарезаны стандартные), ошибка прошла. Сделал фейковый юин и с него попробовал отправить на свой домашний юин сообщение, в ответ скрипт выдал:

    463756684 - UIN blocked, please try again 20 min later.

    Как правильно его трактовать?Антиспам отключил, сижу в квипе инфиум.

  21. Dart | 02.04.2012 в 17:14:31 | #21

    Проблему решил. Вопрос номер два, убрав лимит как сделать повторение... поставил 10 секунд, сообщение не пришло повторно

  22. Dart | 02.04.2012 в 17:21:18 | #22

    Не плохо бы добавить ещё случайный выбор из нескольких фраз и возможность зацикливания на одном номере в качестве цели

  23. Mowshon | 02.04.2012 в 18:13:24 | #23

    Dart, чтобы не получить бан, один из методов это запастись большой базой рабочих UIN с которых будут отправлять, и поставить лимит в 5 сек.

    насчет текста, можно сделать так:

    // заменить то что в скрипте на
    $text = array("текст 1", "текст 2", "текст 3", "текст 4";
    ...
    $send = $icq->send_message($k, $text[rand(0, count($text)-1)]);
  24. Dart | 03.04.2012 в 10:30:31 | #24

    Что то ругается на:

    $text = iconv('utf-8', 'windows-1251', $text);

    Ошибка(Вернее ворнинг):

    Warning: iconv() expects parameter 3 to be string, array given in D:\xampp\htdocs\icq-bot\icq.php on line 31
    463756684 Message sent!

    Естественно сообщение не пришло.

    в пхп не силён, но как понимаю, проблема в 3м параметре, а именно в том что он у нас теперь в виде массива?

  25. Mowshon | 03.04.2012 в 21:48:15 | #25

    Dart, да проблема в том, что функции iconv передается массив вместо строки. Удаляем строку

    $text = iconv('utf-8', 'windows-1251', $text);

    переписываем

    $text = array("текст 1", "текст 2", "текст 3", "текст 4";
    $text = $text[rand(0, count($text)-1)];
    $text = iconv('utf-8', 'windows-1251', $text);
    $send = $icq->send_message($k, $text);
  26. Борис | 08.04.2012 в 22:05:29 | #26

    Что-то у меня не пашет :( и ничего не выдает.

  27. Mowshon | 08.04.2012 в 23:28:45 | #27

    Борис, точнее опишите в чем проблема работы скрипта. Сообщения не отправляются ?

Оставьте комментарий!

Гость
Комментатор / хотите им стать

Чтобы стать комментатором введите email и пароль. Напишите комментарий. В дальшейшем ваша связка email-пароль, позволит вам комментировать и редактировать свои данные. Не забудьте про активацию (инструкция придет на ящик, указанный при регистрации).

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)