Script som varsler ny IP adresse

Script som varsler ny IP adresse

Innleggav Giltvedt » ons 30.07.2008 16:26

I løpet av høsten skal jeg flytte til Sverige og bo der i 2 år fremover. Av forskjellige årsaker så velger jeg å la Linuxboksen forsatt stå hjemme. Det er en maskin med siste utgave av Xubuntu som er oppe og går.

Har satt opp i routeren slikt jeg kan få tilgang til maskinen med VHC via SSH og Samba (også via SSH antar jeg) som er nok for meg. Problemet er at ISP leverandøren bytter IP adresse i forskjellige tider og det hindrer meg å få kontakt med maskinen igjen når det er ny IP adresse. Foreldre mine er ikke så kompentent nok til å finne hvilket IP adresse vi får og jeg vil ikke plage dem med å spørre hva IP adressen er.

Fant tidligere en script i Perl (eller Python) som sjekket om det er noe ny IP adresse fra f.eks whatismyip.com og lagret det i en tekstfil. Det registrerte kun når IP er ny og ikke er det samme som den siste IP adresse. Det vil si at det ikke registrerte IP adressen hvis det allerede er det samme som scriptet sjekket sist.

Tillegg kunne jeg få det tilsendt pr e-post for hver gang det er ny IP adresse. Hvertfall få scriptet til å kjøre hver tredje natt eller hver uke.

Er det noen som kjenner til det? Har null erfaring med Perl/Python og ville vært takknemlig å få litt hjelp med script og fremgangsmåte hvordan jeg får satt det opp på maskinen min.

På forhånd takk

Moderator
Brukerens avatar
medlem i 245 måneder
 

Re: Script som varsler ny IP adresse

Innleggav ArneArts » ons 30.07.2008 17:09

Bruk DynDNS! Da kan du få domenet <noe>.dyndns.com (eller noe) til å peke på boksen din, ved å kjøre et program som oppdaterer DynDNS sine servere med IP-adressen hver gang den endres. Det finnes mange forskjellige DynDNS-klienter, og Thomson-routere fra NextGenTel (og sikkert andre routere) har innebygget støtte for det.

Brukerens avatar
medlem i 241 måneder
 

Re: Script som varsler ny IP adresse

Innleggav Giltvedt » ons 30.07.2008 17:39

Har registrert meg en gratis konto på DynDNS nå og ser litt. Ser bare at jeg må fylle inn IP adresse til gjeldende Linuxboks og jeg ser ikke noe logikk i det. Er egentlig det motsatte.

Skal se hvor jeg finner noe om denne programmet du nevnte…

Her hjemme har vi GET så det er nevnt.

EDIT: Er nok litt på villspor her. Av det jeg finner her som jeg forsøkter å sette opp koster penger årlig.

EDIT2: Nå tror jeg er inne på noe. Ruteren vi har hjemme er Linksys WRT54G og der fant jeg mulighet for å sette opp DDNS. Riktignok står det dynDNS.org istedet, men ser at det er det samme. Vil det i teorien bety at routeren oppdaterer dyndns.com om den nye IP adressen selv om jeg har allerede skrevet inn nåværende IP hos dem?

Ellers er jeg litt skepisk nå som jeg prøver å gå inn i adressen jeg har satt opp. Når jeg får kontakt så får jeg spørsmål om passord til routeren og det opplyser at passordet blir sendt i klartekst. Forventer ikke at dette skal gi mulighet for andre å bryte inn i routeren og i nettverket. Må vel se om jeg får satt opp routeren til å kun la meg logge på lokalt.

Moderator
Brukerens avatar
medlem i 245 måneder
 

Re: Script som varsler ny IP adresse

Innleggav TO » ons 30.07.2008 23:38

Her er et skript som finner ut når ip-nummeret har endret seg, og legger siste nummer i ei fil. Jeg har ikke klart å finne ut hvordan du kan sende f.eks. SMS eller epost med det nye ip-nummeret - men det må jo la seg gjøre...

Kode: Merk alt
#!/bin/bash
function report_ip_change {
# return 0 on changed ip-number
#        1 on unchanged ip-number
ipfile=$1 # contains ip-number from last run
myip=$2   # contains current ip-number from whatismyip...
if [ ! -e $ipfile ];
then
    echo no-ip-here > "$ipfile"
fi
awk -v ipfile="$ipfile" '
BEGIN{
retval=1 # no change in ip-number
}
NR==1 {
    prev_ip=$0 # read from ipfile
    print "previous ip:", prev_ip
    next
}
/<BODY>My IP is:/ { # read from whatismyip....
    curr_ip=tolower($0);
    gsub(/[/\<>a-z: \t]/,"",curr_ip);
    print "current ip:", curr_ip;
    if (curr_ip!=prev_ip)
    {
   # different ip - update ipfile
        print curr_ip > ipfile
        retval=0 # change in ip-number
    }
}
END{
exit(retval)
}   ' "$ipfile" "$myip"
return $?
}


ipfile=previous_ip.txt                # previous ip-number
myip=./whatismyip.oceanus.ro/myip.php # current ip-number

while true
do
      wget -r http://whatismyip.oceanus.ro/
      if report_ip_change "$ipfile" "$myip"
      then
     echo ip-number is changed
     echo now:
     cat $ipfile
      else
     echo ip-number is similar
      fi
      sleep 30 # seconds
done
medlem i 215 måneder
 

Re: Script som varsler ny IP adresse

Innleggav ak » tor 31.07.2008 3:41

Kode: Merk alt
echo "ip 123.123.123.123" | mailx meg@host.com


eller

Kode: Merk alt
echo "ip 123.123.123.123" | sendmail meg@host.com

Administrator
Brukerens avatar
medlem i 238 måneder
 

Re: Script som varsler ny IP adresse

Innleggav TO » fre 01.08.2008 0:45

Perfekt, klarte å sette opp mot gmail.com vha. denne (ubuntu7.04):
How To: Command-Line Email as Simply as Possible
Lenke: http://www.uluga.ubuntuforums.org/showt ... p?t=780509

To endringer måtte til pga. siste i tråden, ...gmail has changed to the Equifax Secure CA...:
Kode: Merk alt
1.0 $ cd ~/etc/.certs
1.1 $ wget -O Equifax_Secure_Certificate_Authority.pem https://www.geotrust.com/resources/root_certificates/certificates/Equifax_Secure_Certificate_Authority.cer
2.1 $ gedit ~/.msmtprc # rediger tls_trust_file som vist under
2.2 $ grep tls_trust ~/.msmtprc
#tls_trust_file /home/USER/etc/.certs/ThawtePremiumServerCA.crt
tls_trust_file /home/USER/etc/.certs/Equifax_Secure_Certificate_Authority.pem


Mao. også:
Kode: Merk alt
echo ip 123.123.123.123 | nail  -s "ny ip: 123.123.123.123"  meg@gmail.com
medlem i 215 måneder
 


Returner til Scripting



Hvem er i Forumene

Registrerte brukere: Google [Bot]