I did a search on CPAN for Net::Rexec, and after reading the 4-sentence description, I decided to look at the source code (all 27 lines, or so). Here is a snippet:
sub rexec { my($host) = shift; my($sock) = IO::Socket::INET->new(PeerAddr => $host, PeerPort => 'exec(512)', Proto => 'tcp'); die "Error opening sock $!" if (!defined($sock));
It seems that you have to be careful how you pass the IP address to the sub, otherwise it might get corrupted. I think you need to make sure it gets passed as a string, instead of a number (with 3 decimal points). I created a little testcase to illustrate my point:
#!/usr/bin/env perl use warnings; use strict; foo('111.22.33.44'); foo(111.22.33.44); sub foo { my $host = shift; print "host=$host\n"; }
which prints:
host=111.22.33.44 host=o!,
I do not know why this happens. Perhaps a more knowledgeable monk can explain.
Update: this is my perl version (just in case this is OS- or version-specific):
This is perl, v5.8.5 built for x86_64-linux-thread-multi
In reply to Re: Problem with Net::rexec
by toolic
in thread Problem with Net::rexec
by padawan_linuxero
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |