Написал тут icq бота

Тема в разделе "Железный поток", создана пользователем Smolensk_serv, 27 фев 2008.

  1. Smolensk_serv
    Оффлайн

    Smolensk_serv Новичок

    Credit:
    $1,00
    Book Reviews:
    0
    Для администрирования сервера на ОСе FreeBSD, очень полезно када под рукой нету ssh клиента. Кому надо могу прислать данное чудо. Еще оно умеет смареть аптайм, правила фаервола, и щяс дописываю чтоб статистику из squid`a выдерал.
  2. Георгий
    Оффлайн

    Георгий Новичок

    Credit:
    - $1,17
    Book Reviews:
    0
    на чем написано?
    если в сорцах, то на root@pay2sat.com отправь плиз tar.gz</div>
  3. Smolensk_serv
    Оффлайн

    Smolensk_serv Новичок

    Credit:
    $1,00
    Book Reviews:
    0
    Георгий, перл + Net::OSCAR
  4. Smolensk_serv
    Оффлайн

    Smolensk_serv Новичок

    Credit:
    $1,00
    Book Reviews:
    0
    сначала из портов надо ставить NET::OSCAR

    cd /usr/ports/net-im/p5-Net-OSCAR
    make install

    Далее чтоб не слать всем привожу листинг файла bot.pl у меня он запускается так # perl bot.pl &
    #!/usr/bin/perl

    use Net::OSCAR;


    # конфигурационные данные
    $MAX_SPEED=512;
    # UIN админа бота
    $ADM_UIN=457837749;

    # хеш, содержащий имена команд и связанные с ними функции
    %functions = ("uptime" =>\&uptime,
    "stat" => \&stat,
    "shutdown" => \&shutdown,
    "sysctl" => \&sysctl,
    "sysctl_" => \&sysctl_,
    "sh" => \&sh,
    "reliz" => \&reliz);

    $oscar = Net::OSCAR->new();
    $oscar->set_callback_im_in(\&message_callback);
    # здесь поместите свой UIN и пароль
    $oscar->signon(123456789, "тест") or
    die("Авторизация не удалась!\n");
    $quit = 0;
    while(!$quit) { $oscar->do_one_loop(); }


    sub message_callback {
    local($cmd, $params, $result);
    local $result = "";
    local($client, $uin, $msg) = @_;
    $ADM_UIN=new Net::OSCAR::Screenname $ADM_UIN;

    return if($uin ne $ADM_UIN);

    if(($cmd, $params) = $msg =~ /^\!([^\ ]+)\s*(.*)$/)
    {
    eval {$result = exists($functions{$cmd}) ?
    $functions{$cmd}($params) : ""};
    if($@) {$result="Error: $@";}
    $client->send_im($uin, $result) if $result;
    }
    }



    sub uptime {
    my ($cmd);
    $result=`uptime`;
    return $result;
    }

    sub reliz {
    my ($cmd);
    $result=`uname -a`;
    return $result;
    }

    sub sysctl {
    my ($cmd);
    $result=`sysctl -a | grep net.inet.ip`;
    return $result;
    }

    sub sysctl_ {
    my ($result, $cmd, $cons);
    my $cons=$_[0];
    $cmd=`sysctl net.inet.ip.$cons`;
    system($cmd);
    $result=`sysctl -a | grep net.inet.ip.".$cons"`;
    return $result;
    }
    sub sh {
    my ($cmd);
    my $cmd=$_[0];
    $result=`$cmd`;
    return $result;
    }
  5. Smolensk_serv
    Оффлайн

    Smolensk_serv Новичок

    Credit:
    $1,00
    Book Reviews:
    0
    и так:

    !sh имя комманды
    !uptime показывает аптайм сервака
    !sysctl выводит данные net.inet.ip.xxx
    !sysctl_ изменение переменных net.inet.ip
    !reliz выводит uname -a
  6. Георгий
    Оффлайн

    Георгий Новичок

    Credit:
    - $1,17
    Book Reviews:
    0
    перл - это мое любимое, присылай.

    Net::OSCAR слышал глючит если получатель находится в оффлайне.
    ну типа до получателя тогда сообщение не доходит когда он выходит в онлайн.

    кстати вместо ssh я бы не рискнул ее ставить. Но какие-то интересные штучки наверное можно с ее помошью смастерить.
  7. Smolensk_serv
    Оффлайн

    Smolensk_serv Новичок

    Credit:
    $1,00
    Book Reviews:
    0
    Георгий, листинг файла выложил выше

    Георгий, хз, мне удобно када у меня тока мобила под рукой а из офиса орут типа чета не работает инет или скорость зарезалась, тада на мобиле беру прописываю и готово -)
  8. Ivanhoe
    Оффлайн

    Ivanhoe Новичок

    Credit:
    $0,00
    Book Reviews:
    0
    На Сорсфорж бы надо... :)
  9. Smolensk_serv
    Оффлайн

    Smolensk_serv Новичок

    Credit:
    $1,00
    Book Reviews:
    0
    документация NET:OSCAR очень простая я освоил ее за 30минут, и бота этог ов течении часа написал
  10. Smolensk_serv
    Оффлайн

    Smolensk_serv Новичок

    Credit:
    $1,00
    Book Reviews:
    0
    Вывод команд ботом:

    Smolensk (23:29:36 27/02/2008)
    !uptime

    ххх (23:29:37 27/02/2008)
    11:29PM up 5:47, 2 users, load averages: 6.09, 6.03, 6.02

    Smolensk (23:29:56 27/02/2008)
    !sh ipfw show

    ххх (23:29:57 27/02/2008)
    65535 0 0 allow ip from any to any

    Smolensk (23:30:14 27/02/2008)
    !sysctl

    ххх (23:30:17 27/02/2008)
    net.inet.ip.portrange.randomtime: 45
    net.inet.ip.portrange.randomcps: 10
    net.inet.ip.portrange.randomized: 1
    ...
  11. Smolensk_serv
    Оффлайн

    Smolensk_serv Новичок

    Credit:
    $1,00
    Book Reviews:
    0
    Ivanhoe, ненадо ;)
  12. Георгий
    Оффлайн

    Георгий Новичок

    Credit:
    - $1,17
    Book Reviews:
    0
    работает очень недурно.
    надо подумать теперь куда это можно прикрутить.
  13. Ivanhoe
    Оффлайн

    Ivanhoe Новичок

    Credit:
    $0,00
    Book Reviews:
    0
    Ну смарите сами :)
  14. Smolensk_serv
    Оффлайн

    Smolensk_serv Новичок

    Credit:
    $1,00
    Book Reviews:
    0
    Георгий, прикрути к своей система зачисления платежей, типа чтоб выдавал баланс с подписки, создание новой подписки, выписка счетов и т.д.
  15. Георгий
    Оффлайн

    Георгий Новичок

    Credit:
    - $1,17
    Book Reviews:
    0
    да вроде бы нет большого смысла.
    Проверить баланс можно итак практически с любого мобильника на wap.pay2sat.com
    создание подписок, пополнение - это все равно действия которые потребуют компьютера (подписка создается для того чтобы работать на компьютере).
    Ну т.е. если узнавание баланса с мобильника нужно для того чтобы клиент мог по пути домой при необходимости зайти в Элекснет и произвести оплату, то с созданием подписки и выпиской счетов вряд ли кто-то будет заморачиваться, когда намного удобнее сделать это через нормальный браузер с компьютера.</div>
  16. Smolensk_serv
    Оффлайн

    Smolensk_serv Новичок

    Credit:
    $1,00
    Book Reviews:
    0
    Ivanhoe, смысл от него?

    Обнаружился один минуc более 30 строк он отправить не может :(
  17. Георгий
    Оффлайн

    Георгий Новичок

    Credit:
    - $1,17
    Book Reviews:
    0
    дело может быть не в строках, а в 450 символах
    с таким ограничением у некоторых клиентов сталкиваюсь когда пытаюсь отправить длинное сообщение по ICQ
  18. Smolensk_serv
    Оффлайн

    Smolensk_serv Новичок

    Credit:
    $1,00
    Book Reviews:
    0
    Георгий, да скорее всего 450 символов :(
  19. madesst
    Оффлайн

    madesst Новичок

    Credit:
    $0,00
    Book Reviews:
    0
    а в чем проблема рубить выдаваемый текст на несколько сообщений? =)
  20. Smolensk_serv
    Оффлайн

    Smolensk_serv Новичок

    Credit:
    $1,00
    Book Reviews:
    0
    madesst, хз хз
  21. Smolensk_serv
    Оффлайн

    Smolensk_serv Новичок

    Credit:
    $1,00
    Book Reviews:
    0

Поделиться этой страницей