alaa21a has asked for the wisdom of the Perl Monks concerning the following question:

hello world,
how can edit this script to read $server from file An example is inside the file :- 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.5 ================== line 8 my $server = $ARGV[0];
#!/usr/bin/perl use IO::Socket; use Net::hostent; use Getopt::Std; my $server = $ARGV[0]; my $fileconfig="config-file"; my $max_processes = 10; print "TFTP file word database: $fileconfig \n"; print "TFTP server $server \n"; print "Max processes $max_processes \n"; $timeout = 2; $port = 69; $retries=2; my @pids; my $npids=0; open( fileconfig, "<$fileconfig") || die " Cannot open the word fil +e : $fileconfig ! \n"; chomp(@fileconfig = <fileconfig>); close(fileconfig); foreach $file (@fileconfig) { my $pid; $pid=fork(); if($pid>0){ $npids++; print " Processes are: $npids\n" ; if($npids>=$max_processes){ for(1..($max_processes)){ my $wait_ret=wait(); if($wait_ret>0){ $npids--; } } } next; }elsif(undef $pid){ print " Fork error!\n"; exit(0); }else{ local $SIG{'ALRM'} = sub { exit(0); }; alarm 0; eval { tftp_check($file); }; exit(0); } } for(1..$npids){ my $wt=wait(); if($wt==-1){ print " is $!\n"; redo; } } sub tftp_check { my $file =shift; my $MAXLEN=2; my $op=01; my $mode = "netascii"; my $count=$retries; my $pkt = pack("n a* c a* c", $op, $file, 0, $mode, 0); if ( $count != 0 && $treturn !="03") { my $sock = IO::Socket::INET->new(Proto => 'udp'); send($sock,$pkt,0,pack_sockaddr_in($port,inet_aton($serve +r))); undef($treturn); undef($rpkt); eval { local $SIG{ALRM} = \&timed_out; alarm $timeout; $sock->recv($rpkt, $MAXLEN); close $sock; alarm 0; } ; $count--; @rets = split( //, $rpkt ); foreach $currentret (@rets) { $treturn .= ord($currentret); } if ($treturn =="03") { print "*** Found TFTP server remote filename : $file \n"; return 1; } } $count=$retries; }

Replies are listed 'Best First'.
Re: script read from file
by stevieb (Canon) on Feb 19, 2018 at 03:07 UTC

    All of your posts here on Perlmonks to date indicate that you want to utilize found Perl scripts for nefarious purposes.

    Do not ask how to modify or use random code to do unethical things. You will not get answers.

    If you have a legitimate reason for wanting to know how to use the code shown, explain yourself very clearly.

    This is not, never has been, or never will be a site where one can throw up random code and ask, in other terms "show me how to hack something with this code".

Re: script read from file
by harangzsolt33 (Deacon) on Feb 19, 2018 at 06:31 UTC
    I don't understand what your script is trying to do. But if your question is "how to read a few lines of text from a file?" then why don't you ask that simply? What does this have to do with IO Sockets and TFTP servers and whatnot?
      This is my project and I would like to solve the problem and I am not using this bad script