Meddelande

Minska
No announcement yet.

Perl - Automatisk updatering av IP på internet sida

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Perl - Automatisk updatering av IP på internet sida

    Dags att få liv i det här forumet igen

    Ett litet script som jag har gjort, gjorde det när dns2go inte hade fungerat på 24 timmar .
    Det laddar automatiskt upp en sida med din IP adress till en FTP server. Du kan själv välja var IP adressen ska vara på sidan genom att skriva <!--IP_ADDR--> i html dokumentet (kan finnas på flera ställen).
    Glöm inte att ändra inställningarna i början av skriptet så det passar dig.
    Själv kör jag detta script varje timme genom min crontab. Det går säkert att modda så att det lysnar efter byte av IP adress men det är lite för avanserat för mig men om någon kan göra det så skulle det vara kul att veta hur


    Testat på Redhat 7.3.
    [kod]
    #!/usr/bin/perl

    #################################################
    #
    # This script will get the ip address of your computer
    # put it inside a html page as a link and send the html
    # file to a ftp server. All this to enable you to always
    # be able to point users to your site even if you use a
    # dynamic ip address.
    #
    # Copyright (C) Viktor 2002
    #
    #################################################

    use strict;
    use Socket;
    use Net::FTP;

    #############################

    my $ip_addr="";
    # FTP server address
    my $server_addr="";
    # Username and password for FTP server
    my $username="";
    my $password="";
    # The remote directory where you want to place the html file
    my $remote_dir="";
    # The name of the template
    my $template="template.html";
    # The name of the file
    my $indexfile="index.html";
    # The ethernet card that is conected to the internet (the one we shuld use to get the ip address)
    my $eth="eth1";

    #############################

    getIP();
    createInde);
    sendFile();
    exit;

    sub sendFile
    {
    my $ftp = Net::FTP->new($server_addr, Debug => 0);
    $ftp->login($username,$password);
    $ftp->cwd($remote_dir);
    $ftp->put($indexfile);
    $ftp->quit;
    }

    sub getIP
    {
    my $buffer = `/sbin/ifconfig $eth | awk '/inet /{sub("addr:","");print$2}'`;
    $buffer =~ s/ {2,}/ /g;
    my @pairs = split(/ /, $buffer);
    $ip_addr=$pairs[2];
    }

    sub createIndex
    {
    open(INFILE,$template);
    open(OUTFILE,">$indexfile");
    my @infile = <INFILE>;
    my $line="";

    foreach $line (@infile)
    {
    chomp($line);
    $line =~ s/<!--IP_ADDR-->/$ip_addr/g;
    print OUTFILE "$line\n";
    }

    close(INFILE);
    close(OUTFILE);
    }
    [/kod]

    /Viktor
    Last edited by Viktor; 2012-02-27, 22:59.
Working...
X