Toon posts:

Yi.org perl script probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hai...Ik hen geen snars verstand van Perl en heb dit nu helaas wel ff nodig.. :).
Via mijn provider krijg ik netjes elke keer een ander IP. Nu heb ik een accountje bij Yi.org en ik heb een script gevonden waarmee je automatisch je IP kunt bijwerken.

Probleem is dat ik dus 'rare'foutmeldingen krijg...

(Can't locate HTTP/request.pm in @inc ......at ./yi.pl line 14)

Ik heb geen flauw idee wat ik hiermee aanmoet. Kan iemand hulp bieden...


Hieronder het scrip zoals ik het gedownload heb

#!/usr/bin/perl -w
# yi.pl - perl 5 YI.ORG Client 0.01
#
# This is free software;
# You may redistribute this code under the same license and terms as perl itself.
# Copyright 2000 by Tyler MacDonald <crackerjack@crackerjack.net>
#
# Official Distribution Site:
# http://www.yi.org/clients/
#

use strict;
use vars qw(@ARGV %cfg %help %ENV $req $resp $ua $c $VERSION);
use HTTP::Request;
use LWP::UserAgent;

$VERSION="0.1";

%cfg=(
'url'=>'http://www.yi.org/bin/dyndns.fcgi',
'config'=>"$ENV{'HOME'}/.yirc"
);

if($cfg{'config'} && open(CONFIG, $cfg{'config'})) {
my %c;
@_=<CONFIG>;
close(CONFIG);
chomp(@_);
%c=@_;
$cfg{$_[0]}=$_[1] while(@_=each(%c));
}

foreach (@ARGV) {
if(/^(.+?)=(.+)$/) {
$cfg{$1}=$2;
} else {
$cfg{$_}++;
}
}

if($cfg{'save'} && $cfg{'config'}) {
print "Saving configuration to $cfg{'config'}.\n";
if(open(CONFIG, ">" . $cfg{'config'})) {
delete($cfg{'save'});
print CONFIG join("\n", %cfg), "\n";
close(CONFIG);
chmod(0700, $cfg{'config'});
} else {
die "Save failed: $!";
}
exit(0);
} elsif($cfg{'save'}) {
usage("Save option requires config file argument (config=...)");
}

if(@_=grep(!$cfg{$_}, 'url', 'user', 'password')) {
usage("Values required for ", join(", ", @_), ".");
}

$req=HTTP::Request->new('GET'=>$cfg{'url'});
$req->authorization_basic($cfg{'user'}, $cfg{'password'});
$req->url->query("ipaddr=$cfg{'ip'}") if($cfg{'ip'});

$ua=LWP::UserAgent->new;
$ua->agent("yi.pl/$VERSION");

$resp=$ua->request($req) || die "Requesting URL failed";

if($resp->is_error()) {
die("Request ", $req->url, " failed: ", $resp->status_line, "\n");
}

$c=$resp->content();

if($c=~/STATUS:OK/) {
print unhtml($c) unless($cfg{'verbose'});
} else {
die unhtml($c) . "\n";
}

exit(0);

# Functions

sub usage {
print(join("\n", "Usage: $0 \[user=..\] \[password=..\] \[ip=..\] \[config=..\] \\[save\] \\[quiet\]", join("",@_)), "\n");
while(@_=each(%help)) {
print join(length($_[0]<8) ? "\t\t" : "\t", @_), "\n";
}
exit(1);
}

sub unhtml {
my $h=shift;
$h=~s/\<.+?\>//g;
$h=~s/^\n|\n$|\n(\n\n)/$1||''/ges;
$h;
}

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Hij kan HTTP::Request niet vinden (de module)

  • BOOTZ
  • Registratie: Maart 2001
  • Laatst online: 16-09 09:54
Op dinsdag 16 oktober 2001 08:32 schreef 2 het volgende:
Hij kan HTTP::Request niet vinden (de module)
juist. moet je ff bij CPAN die module zoeken en installeren (begin bij www.perl.com, ga naar CPAN, en dan ff zoeken)

Maak je eigen poll


  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 03-09 23:48
Je kan ook kijken of je linux-distro een libwww-perl pakketje heeft en die installeren. (Even ervanuit gegaan dat je linux draait).

Verwijderd

Topicstarter
Ja ja....Werkt dat zo :)

Het script werkt nu :)

Nog een vraagje tot slot..

Als ik het script uitvoer vraagt hji om een usernaam en password. Kan ik die ook ergens als string in dat script zetten zodat ik die niet meer in hoef te voeren.

Verwijderd

Topicstarter
ohohoho...ff verder kijken dan mijn neus lang is .....Ik ben er uit bedankt voor de hulp
Pagina: 1