LINUX.ORG.RU

bot


0

0

#!/usr/bin/perl use SOCKS;

$ip=$ARGV[0]; $port1=$ARGV[1]; $server=$ARGV[2]; $port=$ARGV[3]; $chan=$ARGV[4]; $mess=$ARGV[5]; $name=$ARGV[6];

$buff = 65000;

$sock = new NET::SOCKS(socks_addr=>"$ip", socks_port=>"$port1", $protocol_version=>5) || kill INT => $$;

$s = $sock->connect(peer_addr=>$server. perr_port=>$port) || die "fuck: no connect";

if ($sock -> param ('status_num') eq SOCKS_OKAY {

$s->send("USER $name $name $name:$name\n"); $s->send("NICK $name\n"); $s->send("VERSION\n"); $s->send("JOIN $chan\n");

while ($s->recv($answer, $buff) eq "true") {

if ($answer = ~/(PING :)(.*)/) {$s->send("PONG $2\n");} if ($answer = ~/^:(\S+)!(\S+)\@(\S+)\sPRIVMSG\s(\S+)\s:[!](\S+)/) { if($5 eq "f") {$s->send("PRIVMSG $4 :$mess\n");} } if ($answer = ~/^:(\S+)!(\S+)\@(\S+)\sBAN\s(\S+)\s:[@](\S+)\s:(\S+)/) { if($5 eq "$name") {kill INT => $$;} }

print "$answer"; } $sock->close(); } где глюк?


В генах.

use warnings;
use strict;

без этих двух строчек НИКТО твою программу на перле смотреть не будет вообще.

Zulu ★★☆☆
()
Ответ на: комментарий от Zulu

чет непонял. ну добавил эти двe строчьки. всеравно не хочет работать

r007
() автор топика
Ответ на: комментарий от Zulu

#!/usr/bin/perl -w use warnings; use strict; BEGIN { push(@INC,'lib/'); use SOCKS; } my ($ip) =$ARGV[0]; my ($port1)=$ARGV[1]; my ($server)=$ARGV[2];; my ($port)=$ARGV[3]; my ($chan)=$ARGV[4]; my ($mess)=$ARGV[5]; my ($name)=$ARGV[6]; #=================end============================== print "socks=$ip port=$port1 irc=$server port=$port Name=$name Chan=$chan Mess=$mess\n"; my ($buff) =1024; my ($sock) = new NET::SOCKS(socks_addr=>$ip, socks_port=>$port1, protocol_version =>5,) or die kill INT => $$; my ($s) = $sock->connect(peer_addr=>$server, peer_port=>$port) or die "No"; if ( $sock -> param ('status_num') == SOCKS_OKAY { $s->send("USER $name $name $name:$name\n"); $s->send("NICK $name\n"); $s->send("VERSION\n"); $s->send("JOIN $chan\n"); while($s->recv(my ($answer),$buff) eq "true"){ if ($answer =~ /(PING :)(.*)/){ $s->send("PONG $2\n") or die "PONG NO\n"; } if ($answer=~ /^:(\S+)!(\S+)\@(\S+)\sPRIVMSG\s(\S+)\s:[!](\S+)/) { if($5 eq "f"){ $s->send("PRIVMSG $4 :$mess\n"); } } if ($answer=~/^:(\S+)!(\S+)\@(\S+)\sBAN\s(\S+)\s:[@](\S+)\s:(\S+)/){ if($5 eq "$name"){ kill INT=>$$; } } print $answer; } $sock->close(); } НУ вот те эти строчки серовно EOF !

anonymous
()
Ответ на: комментарий от Zulu

Я понимаю если не знаеш можно говорить без этих без тех !! А сути нету имхо ! Так что не стоило даже это говрить !

anonymous
()
Ответ на: комментарий от anonymous

*пожимая плечами*

каждый сам себе буратино, товарищ Эр-ноль-ноль-семь.

почему я должен копаться в твоей программе?
дебажь ее сам, я лишь дал очень полезный совет на тему варнингов и стрикта.
А вообще когда видишь _такой_ стиль написания программы...

perl -d тебе в руки.

Не говоря уж о том, что исходная программа была приведена с явными ошибками. ПО крайней мере при первом взгляди видно несимметричные скобки, конкатенация вместо запятой...

Zulu ★★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.