# [INFO] avere aggiornato IP remoto

## paperp

Ho un problema , mi trovo ad usare sshd ma tutti i giorni(strano prima non lo faceva..!!)alice mi cambia l'IP dinamico cosa posso fare per avere l'IP da casa(stò spesso fuori..)senza assillare mi mà con problemi che non capisce??  :Rolling Eyes:   :Laughing: 

----------

## lan

usa dyndns come faccio io, un portage c'è un programma apposta che aggiorna i db di dyndns automaticamente ogni cambio dell'ip.. 

```
jasmine lan # emerge -s dyndns

Searching...

[ Results for search key : dyndns ]

[ Applications found : 1 ]

*  net-misc/dyndnsupdate

      Latest version available: 0.6.15

      Latest version installed: [ Not Installed ]

      Size of downloaded files: 15 kB

      Homepage:    http://xzabite.org/dyndnsupdate/

      Description: updates the DNS for your hostname/hostnames and other variables at dyndns.org

      License:     GPL-2

jasmine lan #

```

----------

## mouser

Una soluzione del genere funziona anche con Fastweb o ci sono particolari menate (tipo IP dinamico condiviso o firewall) che non permettono questa cosa?

Thanxx

Ciriciao

mouser  :Wink: 

----------

## codadilupo

 *paperp wrote:*   

> cosa posso fare per avere l'IP da casa (stò spesso fuori..)senza assillare mi mà con problemi che non capisce??  

 

Puoi registrarti a dyndns.org (o no-ip.com, oppure a cjb.net ce n'e' un mucchio  :Wink: )

Poi, come client puoi usare ddclient

File di configurazione /etc/ddclient/ddclient.conf:

```
daemon=600

syslog=yes

pid=/var/run/ddclient.pid

use=web

protocol=dyndns2

server=<nomehost>.dyndns.org

login=<username>

password=<password>

server=<nomehost>.dyndns.org, protocol=dyndns2
```

```
# rc-update add ddclient default

# /etc/init.d/ddclient start
```

P.S.: non é che qualcuno puo' dirmi se riesce a vedere la pagina di apache all'indirizzo http://consul-az.ath.cx purtroppo, io dalla lan non riesco a verificarlo, per questioni di router  :Wink: [/b]

CodaLast edited by codadilupo on Thu Nov 23, 2006 9:25 am; edited 2 times in total

----------

## mouser

Ho capito......

In passato ho chiesto lumi a quelli di fw, ma mi e' stato detto

 *Quote:*   

> 
> 
> Ma con questa soluzione puoi avere un IP pubblico per 20 ore al mese
> 
> 

 

Ora..... Che cribbio (per non dire altro) me ne faccio di un ip pubblico per 20 ore al mese????   :Evil or Very Mad:   :Evil or Very Mad: 

La mia domanda e', quindi: All'interno della rete fw (che come e' risaputo non e' altro che una lan grossina) ho un ip privato. Ma quando esco da questa "lan" (tipo se mi collego a www.no-ip.org) non esco con un ip (che anche se dinamico e' pubblico?)? Probabilmente si. Ora se quando sono in ufficio chiedo a mio fratello di andare su www.my-ip.com e di leggermi l'ip che restituisce, se dal lavoro pingo quell'ip, sto pingando il mio computer, o in realta' ne sto pingando un po' perche' l'ip e' condiviso da piu' utenti?

mouser  :Wink: 

[EDIT]: Altra cosa: se quello che ho scritto dovesse rivelarsi fattibile, non e' che a fine mese quei simpaticoni di fw mi addebitano il costo di utilizzo dell'ip dall'esterno?

----------

## randomaze

 *mouser wrote:*   

> o in realta' ne sto pingando un po' perche' l'ip e' condiviso da piu' utenti

 

Ci sono alcuni topic inerenti il discorso fastweb, in ogni caso... tutti gli utenti di una zona escono con lo stesso IP pubblico.

----------

## mouser

 *randomaze wrote:*   

> 
> 
> Ci sono alcuni topic inerenti il discorso fastweb, in ogni caso... tutti gli utenti di una zona escono con lo stesso IP pubblico
> 
> 

 

 :Crying or Very sad:   :Crying or Very sad:   :Crying or Very sad: 

vabbe' allora devo rassegnarmi......

cerchero' i topic.

Grazie mille

Ciriciao

mouser  :Wink: 

----------

## paperp

 *Quote:*   

> EDIT: non é che qualcuno puo' dirmi se riesce a vedere la pagina di apache all'indirizzo http://consul-az.ath.cx purtroppo, io dalla lan non riesco a verificarlo, per questioni di router  

 

Confermo il tuo apache funziona!!  :Wink: 

Ma scusa il ddclient lo devo installare sulla macchina da cui mi collego al server ssh??Cavolo , ma sii più chiaro nelle tue spiegazioni...!!  :Laughing: 

----------

## mouser

 *codadilupo wrote:*   

> 
> 
> EDIT: non é che qualcuno puo' dirmi se riesce a vedere la pagina di apache all'indirizzo http://consul-az.ath.cx purtroppo, io dalla lan non riesco a verificarlo, per questioni di router
> 
> 

 

Seconda conferma, si vede benissimo  :Wink: 

Ciriciao

mouser  :Wink: 

----------

## Cazzantonio

avendo un router io mi sono creato uno scriptino che mi scarica automaticamente la pagina della configurazione del router (dove c'è l'ip) e me la spedisce ad un mio indirizzo di posta. In questo modo mantengo un ip dinamico e sono costantemente informato su quale sia il mio ip (basta accedere alla webmail)

non ho niente contro dyndns ma se posso evito di appoggiarmi a servizi esterni   :Wink: 

----------

## paperp

Grande Cazzantonio anche io sono per le cose semplici , nel senso che sono d'accordo sull'utilita dyns.org ma io avrei bisongo proprio di uno scrippettino come il tuo , solo per avere in mano l'IP aggiornato , non è che sei gentile da inviarmelo in MP??

Grazie.

----------

## codadilupo

 *paperp wrote:*   

> non è che sei gentile da inviarmelo in MP??

 

hei, perché in pm ? Lo voglio anch'io, lo scripettino  :Wink: 

P.S.: secondo te, un software "client" dove si installa  :Wink:  ? Sulla macchina client "del servizio"... quindi sul tuo server   :Laughing: 

Coda

----------

## paperp

Per Coda:

gne,gne,gne......gneeeee

Facevo confusione su chi forniva il servizio , non ero io ,ma la macchina su cui gira dyndns.org ..comunque non era troppo chiaro lo stesso!!  :Laughing: 

[OTONE]..che ci fai su quel webserver Coda??si lo so sono curioso , e allora??

----------

## gutter

Il mio consiglio è usare ddclient. 

Lo script di cazzantonio va bene solo se lui è l'utente del servizio nel caso in cui invece si vuole creare un server web (o un qualunque altro tipo di servente) è necessario appoggiarsi ad un servizio tipo dyndns.

Per la cronaca: io uso dyndns da più di un anno per il mio server web (http://gutter.homelinux.com) e lo reputo un ottimo servizio, davvero affidabile. L'unica pecca è che se non lo utilizzi per più di un mese (adesso non ricordo se è proprio un mese) ti viene cancellato l'account.

----------

## Cazzantonio

Allora a grande richiesta ecco questo umilissimo script: 

Questo scriptino fa poche cose:

1) controlla se il router (il mio è un netgear DG834G) è raggiungibile

2) scarica la pagina web che contiene l'ip (metti il tuo user e la tua password, inoltre devi mettere l'indirizzo preciso della pagina web che cerchi, se hai un router diverso dal mio)

La pagina viene salvata in /root/logs/myip.htm

lo sleep e la ripetizione del comando servono perchè, anche se non mi è chiaro, la prima connessione di wget con il mio router fallisce sempre, la seconda mai... boh? penso sia un problema di tempi di accettazione delle password... comunque così mi funziona, elimina la riga in più se la trovi ridondante

3)salva un md5sum del file e confronta tale md5sum con i precedenti per vedere se ' cambiato (l'unica cosa che mi cambia in quella pagina html è l'ip... quindi se cambia l'md5 è cambiato l'ip)

4)se l'md5sum nuovo è diverso dal vecchio manda una mail con allegato il file in questione (devi configurare te questa riga con il comando che preferisci....)

```
if [ `ping 192.168.1.1 -c1 |grep Unreachable|wc -l` -eq 0 ]

then

#  echo "getting ip address from router"

  wget --http-user=xxxxxx --http-passwd=xxxxxxxx http://192.168.1.1/setup.cgi?next_file=s_status.htm -O /root/logs/myip.htm &>/dev/null

  sleep 2s

  wget --http-user=xxxxxx --http-passwd=xxxxxxxx http://192.168.1.1/setup.cgi?next_file=s_status.htm -O /root/logs/myip.htm &>/dev/null

  md5sum /root/logs/myip.htm >> /root/logs/myip.md5

  if [ `/usr/bin/tail -n 2 /root/logs/myip.md5 |head -n1|wc -l` -eq 1 ]

  then

    OLDIPMD5=$(/usr/bin/tail -n 2 /root/logs/myip.md5 |head -n1)

  fi

  NEWIPMD5=$(/usr/bin/tail -n 1 /root/logs/myip.md5)

  echo $OLDIPMD5 > /root/logs/myip.md5

  echo $NEWIPMD5 >> /root/logs/myip.md5

fi

if [ `/usr/bin/tail -n 2 pippo2 |head -n1` != `/usr/bin/tail -n 1 pippo2` ] 

then

#  echo "the ip address has changed"

#  echo "mailing new ip address"

#  (usa il programma che preferisci per spedirti la mail)

fi
```

Spero vi sia utile   :Wink: 

@gutter

si infatti... io non uso dyndns perchè non mi serve e preferisco rimanere dietro il mio anonimo ip dinamico   :Wink: 

----------

## gutter

@cazzantonio: Nel tuo caso la decisione è ineccepibile  :Wink: 

----------

## paperp

..che tristezza..ma io che sul serverino solo sylpheed client e che so a malpena rendere eseguibile uno srippettino come faccio..devo usare anche cron?....  :Embarassed: 

----------

## t0mcat

perche' prenderlo dalla pagina del router?

```
 

lynx -dump http://checkip.dyndns.org/ | awk {'print $4'} | grep -e '^[0-9]'

```

----------

## FonderiaDigitale

.. o in alternativa:

```
wget -O - http://www.whatismyip.com 2> /dev/null | grep "<h1>" | cut -d " " -f 4
```

puoi farci un alias, se credi.

----------

## xchris

meglio www.whatismyip.org  :Smile: 

ciauz

----------

## Cazzantonio

beh... in questo modo non devi andare su un sito esterno... comunque è valido anche quello

----------

## paperp

Ho provato a documentarmi ma sono migliorato di poco..datemi una mano...

Allora se inserisco i comandi di Fonderia piuttosto che quelli di t0mcat devo trovare il modo di farli eseguire al PC che devo raggiungere con una certa frequenza periodica..fino qui sono giusto , OK?!  :Mad: 

[EDIT] ..dopodichè devo avere un programma di mail in esecuzione che mi inviii la mail generata dallo script....quale può essere il server mail più indicato per fare ciò , anche in vista di un futuro sviluppo del serverino per esercizi di configurare servizi per il web con Gentoo....??

----------

## codadilupo

 *paperp wrote:*   

> dopodichè devo avere un programma di mail in esecuzione che mi inviii la mail generata dallo script....quale può essere il server mail più indicato per fare ciò , anche in vista di un futuro sviluppo del serverino per esercizi di configurare servizi per il web con Gentoo....??

 

oppure potresti adattare lo script di cazzantonio per farti spedire l'ip via sms con questo https://forums.gentoo.org/viewtopic.php?t=273861  :Wink: 

Coda

----------

## Cazzantonio

 *paperp wrote:*   

>  devo trovare il modo di farli eseguire al PC che devo raggiungere con una certa frequenza periodica..fino qui sono giusto , OK?! 
> 
> 

 

```
man cron && vim /etc/crontab
```

 *paperp wrote:*   

> 
> 
>  ..dopodichè devo avere un programma di mail in esecuzione che mi inviii la mail generata dallo script....quale può essere il server mail più indicato per fare ciò , anche in vista di un futuro sviluppo del serverino per esercizi di configurare servizi per il web con Gentoo....??

 

mail-mta/qmail

ma ne esistono a bizzeffe. Ti consiglio di non usare però sendmail perchè da quanto ne so io è uno dei server di posta più bucati in assoluto e in passato so che ha dato diversi problemi (poi l'ho perso di vista e me ne sono disinteressato... magari ora è migliorato...)

@codadilupo

FIGO! effettivamente farsi spedire su cellulare l'ip è una figata colossale!   :Very Happy: 

Mi sa che mi attiverò in proposito   :Wink: 

----------

## stefanogentoo

 *Cazzantonio wrote:*   

> 
> 
> Ti consiglio di non usare però sendmail perchè da quanto ne so io è uno dei server di posta più bucati in assoluto e in passato so che ha dato diversi problemi (poi l'ho perso di vista e me ne sono disinteressato... magari ora è migliorato...)
> 
> 

 

Considerando che è l'MTA più diffuso... cmq, in questo caso, in sendmail.cf:

```

O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA

```

In questo modo il daemon ascolta solo su localhost, quindi non raggiungibile da altre interfacce ( e, di conseguenza, si evita eventuali tentativi di attacchi diretti)

----------

## codadilupo

 *stefanogentoo wrote:*   

> Considerando che è l'MTA più diffuso... 

 

non vorrei dire una cazzata, visto che ne so proprio poco di posta in genere, ma a suffragio di quanto detto da Cazzantonio, ricordo di aver letto che spesso viene utilizzato a mo' di "wrapper" per altri MTA, cosi' da non rompere la compatibilità con applicazioni che cercano sendmail, ma al contempo essere liberi di utilizzare qmail, piu' tosto che postfix, exim etc.. possibile, o non ho capito una sega di quel che ho letto   :Rolling Eyes:  ?

Coda

----------

## Sasdo

 *Cazzantonio wrote:*   

> @codadilupo
> 
> FIGO! effettivamente farsi spedire su cellulare l'ip è una figata colossale!  
> 
> Mi sa che mi attiverò in proposito  

 

Io ho questa fichezza da ormai un mesetto e mezzo  :Mr. Green: 

(me che si bulla e si vanta di essere all'avanguardia =)

----------

## stefanogentoo

 *codadilupo wrote:*   

> 
> 
> non vorrei dire una cazzata, visto che ne so proprio poco di posta in genere, ma a suffragio di quanto detto da Cazzantonio, ricordo di aver letto che spesso viene utilizzato a mo' di "wrapper" per altri MTA, cosi' da non rompere la compatibilità con applicazioni che cercano sendmail, ma al contempo essere liberi di utilizzare qmail, piu' tosto che postfix, exim etc.. possibile, o non ho capito una sega di quel che ho letto ?
> 
> 

 

sendmail è uno di quei "componenti storici" dei sistemi *nix, per questo motivo all'installazione di un diverso MTA di solito viene installato un wrapper che "emula" il comportamento del comando sendmail (utilizzato da diverse applicazioni)

Da notare che il wrapper *non* è,ovviamente, il sendmail stesso, ma un programma "ex-novo" limitato ad eseguire alcune azioni principali: citando     il sendmail manpage di Postfix

"The  sendmail  program implements the Postfix to Sendmail compatibility

       interface.  For the sake of compatibility with  existing  applications,

       some Sendmail command-line options are recognized but silently ignored."

----------

## codadilupo

 *Sasdo wrote:*   

> Io ho questa fichezza da ormai un mesetto e mezzo 
> 
> (me che si bulla e si vanta di essere all'avanguardia =)

 

oh sborone, elargiscici anche un poco della tua fighezza, pero'  :Wink: 

In particolare, mi sono arenato sul come "greppare" il solo IP dalla pagina html. 

```
var st_wan_ip = new Array(10)

var st_wan_subnet = new Array(10)

var st_wan_mac = new Array(10)

var st_virtual_ckt = new Array(10)

st_wan_ip[0] = "212.123.72.19"

st_wan_subnet[0] = "255.255.255.0"

st_wan_mac[0] = "00:D1:40:EB:41:A6"
```

di tutta la pagina a me serve solo il contenuto di st_wan_ip come posso isolarlo dal resto ?

Coda

----------

## codadilupo

 *stefanogentoo wrote:*   

> Da notare che il wrapper *non* è,ovviamente, il sendmail stesso, ma un programma "ex-novo" limitato ad eseguire alcune azioni principali

 

si', a pensarci, in effetti era ovvio, ma non ci avevo proprio badato  :Wink: 

Coda

----------

## stefanogentoo

 *codadilupo wrote:*   

> 
> 
> In particolare, mi sono arenato sul come "greppare" il solo IP dalla pagina html. 
> 
> ```
> ...

 

in questo caso:

```
grep st_wan_ip <file da grepare>|grep -v var|cut -d= -f 2|cut -d\" -f 2
```

da un test:

```

$ cat prova

var st_wan_ip = new Array(10)

var st_wan_subnet = new Array(10)

var st_wan_mac = new Array(10)

var st_virtual_ckt = new Array(10)

st_wan_ip[0] = "212.123.72.19"

st_wan_subnet[0] = "255.255.255.0"

st_wan_mac[0] = "00:D1:40:EB:41:A6"

$ grep st_wan_ip prova|grep -v var|cut -d= -f 2|cut -d\" -f 2

212.123.72.19

```

----------

## Sasdo

 *codadilupo wrote:*   

>  *Sasdo wrote:*   Io ho questa fichezza da ormai un mesetto e mezzo 
> 
> (me che si bulla e si vanta di essere all'avanguardia =) 
> 
> oh sborone, elargiscici anche un poco della tua fighezza, pero' 
> ...

 

Pronti.... però il mio è un sistema ben grezzo:

avendo un gateway per la connessione di casa, ho fatto sì che quando si accende si collega ad internet, e poi:

```
 file: /etc/conf.d/local.start

ip=`ifconfig ppp0 | grep inet | cut -d " " -f 12 | cut -c 6-`

smssend vodafoneit USERNAME PASSWORD MIOCELLVODAFONE "L'ip di oggi è: $ip"

```

 :Cool: 

volendo lo si può aggiungere a crontab senza molta fatica:

```
 file: /etc/cron.hourly/myip

10 * * * * /etc/conf.d/local.start

e poi digitare il comando:

crontab /etc/cron.hourly/myip

```

Ammesso che in local.start non abbiate null'altro.

E ammesso che local.start sia eseguibile.

Così facendo ora, passati 10 minuti fa il controllo.

(es: alle 11.10, 12.10, 13.10 ...)

Se invece volete che l'ip venga inviato solo se cambiato:

```
 /etc/conf.d/local.start

ip_attuale=`ifconfig ppp0 | grep inet | cut -d " " -f 12 | cut -c 6-`

ip_salvato=`cat /tmp/old_ip`

if [ $ip_attuale != $ip_salvato ]

then

        smssend vodafoneit USERNAME PASSWORD CELLULARE "Nuovo ip: $ip_attuale"

        echo $ip_attuale > /tmp/old_ip

fi

```

Spero di non aver fatto errori di sintassi....

EDIT: ho notato che voi andate a prendere l'ip non da ifconfig ma (non ho capito perchè) da una pagina web.

Non cambia nulla se non il parsing dell'indirizzo...

----------

## paperp

Anch'io stòprovando a fare danni sullo sripetino di Cazzantonio praticamente volevo integrare il suo con le modifiche di fonderia e usando smssend invece della mail:

```

if [ `ping 192.168.1.1 -c1 |grep Unreachable|wc -l` -eq 0 ]

then

#  echo "getting ip address "

 wget -O - http://www.whatismyip.com 2> /dev/null | grep "<h1>" | cut -d " " -f 4

  sleep 2s

wget -O - http://www.whatismyip.com 2> /dev/null | grep "<h1>" | cut -d " " -f 4

  md5sum /root/logs/myip.htm >> /root/logs/myip.md5

  if [ `/usr/bin/tail -n 2 /root/logs/myip.md5 |head -n1|wc -l` -eq 1 ]

  then

    OLDIPMD5=$(/usr/bin/tail -n 2 /root/logs/myip.md5 |head -n1)

  fi

  NEWIPMD5=$(/usr/bin/tail -n 1 /root/logs/myip.md5)

  echo $OLDIPMD5 > /root/logs/myip.md5

  echo $NEWIPMD5 >> /root/logs/myip.md5

fi

if [ `/usr/bin/tail -n 2 pippo2 |head -n1` != `/usr/bin/tail -n 1 pippo2` ]

then

#  echo "the ip address has changed"

#  echo "mailing new ip address"

#  (usa il programma che preferisci per spedirti la mail)

fi
```

..per ora ho capito che devo cambiare quelle due righe poi...mi devo ancora impegnare  , ma non è così semplice come dite voi eh??

 :Smile: 

Non ho ancora capitro dove mandare il fileoutput per poter fare la differenza con il controllo md5sum...mmmmhhh  :Question: 

----------

## lavish

 *Sasdo wrote:*   

> EDIT: ho notato che voi andate a prendere l'ip non da ifconfig ma (non ho capito perchè) da una pagina web.
> 
> Non cambia nulla se non il parsing dell'indirizzo...

 

Perche' se si e' dietro ad un router l'ip non lo si trova in ifconfig  :Wink: 

Per il resto, io non metteri quello script in local.start ma direttamente in crontab poiche' e' molto probabile che qualcuno (me compreso) abbia gia' altri scripts caricati

cya!

----------

## codadilupo

 *stefanogentoo wrote:*   

> 
> 
> da un test:
> 
> ```
> ...

 

Un giorno devo proprio trovare il tempo di leggermelo per bene, l'abs.

Io mi ero fermato a greppare la riga dal file, ma non sapevo come eliminare il soverchio  :Rolling Eyes: 

Grazie  :Wink: 

Coda

----------

## Sasdo

 *lavish wrote:*   

> Perche' se si e' dietro ad un router l'ip non lo si trova in ifconfig 
> 
> 

 

Si, ho letto solo più tardi tutto il topic =)

 *lavish wrote:*   

> Per il resto, io non metteri quello script in local.start ma direttamente in crontab poiche' e' molto probabile che qualcuno (me compreso) abbia gia' altri scripts caricati

 

Non è deltutto fuoriluogo questa osservazione... in effetti ricevere l'ip con un ritardo di al più 10 minuti non è drammatico =)

mo lo metto su così!

Ciaoo!

----------

## codadilupo

```
if [ `ping <ROUTER_ADDRESS> -c1 |grep Unreachable|wc -l` -eq 0 ]

then

echo "getting ip address from router"

wget http://<USERNAME>:<PASSWORD>@<ROUTER_ADDRESS>/doc/home.htm -O /root/logs/myip.htm &>/dev/null

sleep 2s

md5sum /root/logs/myip.htm >> /root/logs/myip.md5

if [ `/usr/bin/tail -n 2 /root/logs/myip.md5 |head -n1|wc -l` -eq 1 ]

then

OLDIPMD5=$(/usr/bin/tail -n 2 /root/logs/myip.md5 |head -n1)

fi

NEWIPMD5=$(/usr/bin/tail -n 1 /root/logs/myip.md5)

echo $OLDIPMD5  > /root/logs/myip.md5

echo $NEWIPMD5  >> /root/logs/myip.md5

fi

if [ `/usr/bin/tail -n 2 /root/logs/myip.md5 |head -n1` != `/usr/bin/tail -n 1 /root/logs/myip.md5` ]

then

smssend <GESTORE> <USERNAME> <PASSWORD> <CELL_NUMBER> "Message from `uname -snrmpio` the ip address has changed: $(grep st_wan_ip /root/logs/myip.htm | grep -v var | cut -d= -f 2 | cut -d\" -f 2)"

fi
```

C'e' ancora qualcosa che non va: l'ultimo if non funziona: mi restituisce "Too many arguments" ma sinceramente non so che farci  :Wink: 

In piu', purtroppo, il grep sull'IP mi restituisce un output del tipo

```
Message from Linux BlackBox 2.6.9-gentoo-r1 i686 Pentium III (Katmai) GenuineIntel GNU/Linux. The ip address has changed: 217.133.172.189

+bgColor+
```

e quel +bgColor+ vorrei toglierlo... ma, insomma... é già qualcosa: grazie a tutti !

Coda

----------

