Newsgroup: it.comp.macintosh
Titolo: IP da indirizzo in Bash

Mi sto cimentando ad automatizzare alcune procedure con degli script
bash. Tra queste ho fatto uno script che sveglia e apre una connessione
ssh verso il mio Mac di casa. Solo che a casa dispongo di un IP dinamico
e il comando per il WOL (Wake on Lan), richiede l'indirizzo IP. A mano
uso traceroute per vedere l'IP e poi mando il wol, ma mettendo tutto in
uno script, come potrei ottenere l'IP?
Per chiarire, al momento ho fatto lo script ed assegno il valore alla
variabile, ma io vorrei che lo script ottenesse da solo l'IP. Comunqe
questo è lo script:
#!/bin/bash
MY_MAC="il mio MAC adress"
MY_IP="il mio IP"
wol -b=$MY_IP -p=9 $MY_MAC
ssh studio@$MY_IP
-- 
Per rispondere, togliere -NOSPAM- dall'indirizzo.

 ma mettendo tutto in uno script, come potrei ottenere l'IP?
Non mi è ben chiaro se ti interessa uno degli indirizzo IP assegnati 
alla tua macchina o se vuoi ottenere l'indirizzo IP con il quale ti 
affacci su internet.

 affacci su internet.
vuole l'IP di un'altra macchina che sta sulla rete, e che non ha IP
fisso.
Almeno credo.


 l'indirizzo IP con il quale ti affacci su internet.
Questa. Nel senso che io sono in giro con il portatile, ogni tanto ho
bisogno di collegarmi a casa (dove ho un IP dinamico ed un indirizzo
dyndns). L'IP di solito lo trovo facendo un traceroute sull'indirizzo;
poi uso il comando wol per svegliare il MacPro che ho a casa (ovviamente
a casa è tutto già configurato ad-hoc) e mi connetto con ssh. Solo che
adesso volevo automatizzare il tutto: se il comando wol si prendesse gli
indirizzi non sarebbe un problema, è che invece vuole l'IP: come lo
ricavo in uno script bash (ho delle nozioni di progrmmazione e
scripting, ma non è che mastico bash per colazione... anzi, il mio primo
script è di una settimana fa ;-)


Aladino ha scritto:

Non ne so molto, ma molti utilizzano l'ipv6 assegnando un indirizzo ip a 
quella macchina del tipo 
macchina.servizio_ipv6.com
Si potrebbe tentare con quello, ma potrei anche sbagliarmi e il 
funzionamento potrebbe essere diverso.
-- 
Flavio
www.flapane.com

script è di una settimana fa ;-)
Sul portatile crei un file con un nome a piacere, es ciccio.sh e ci
metti dentro quanto segue, avendo cura di specificare il nome che hai
dato alla macchina di casa sulla seconda riga e il comando corretto
per il wake on lan sull'ultima riga:
#!/bin/bash
DYNHOST='
casa.dyndns.org
'
DYNIP=`host $DYNHOST | cut -f 4 -d ' '`
wol $DYNIP
poi rendi eseguibile lo script
chmod +x ciccio.sh
Lo script usa il comando host per risolve l'indirizzo IP del macpro,
estrae l'IP dall'output del comando host, lo assegna ad una variabile
e usa la variabile come parametro di un comandom in questo caso "wol".
Se vuoi anche automatizzarer il lancio di ssh, aggiungi alla fine
ssh -l tuonomeutente $DYNIP
Saluti.
-- 
Living in Barbaropoli
http://www.barbaropoli.com

 Saluti.
Grazie, mi hai comunque dato il tip che mi serviva.


 wrote:
Integrando con il tuo script:
#!/bin/bash
MYMAC="il tuo MAC adress"
DYNHOST='
casa.dyndns.org
'
DYNIP=`host $DYNHOST | cut -f 4 -d ' '`
wol -b=$DYNIP -p=9 $MYMAC
ssh studio@$DYNIP


 Questa.
myIPAddress=$( curl -s 
http://checkip.dyndns.org
 | sed \
   's/.*: *\([0-9.]*\)<.*/\1/' )



Il massimo della leggibilita'... :)


 Il massimo della leggibilita'... :)
Per la regexp, ma ha il vantaggio di non richiedere la registrazione ad 
alcun servizio.

Ecco, questo è quello che mi mancava.
Sempre che il messaggio non sia diverso in italiano: in inglese l'ip
e' il quarto campo, considerando come delimitatore lo spazio:
host 
casa.dyndns.org
 mi restituisce 
casa.dyndns.org
 has address aaa.bbb.ccc.ddd


    's/.*: *\([0-9.]*\)<.*/\1/' )
Sě, ma questo mi da l'IP da dove sono io. Io voglio l'IP di casa mia,
quando non sono a casa. Comunque ho combinato con la il comando host,
come spiegato da Freddy.


 
casa.dyndns.org
 has address aaa.bbb.ccc.ddd
Anche a me. Adesso funziona come volevo, grazie.


 Questa. 
Se vuoi l'ip di casa e lo cerchi da fuori è chiaro che devi risolvere il 
nome dinamico, host nslookup o che altro, al limite ping ma traceroute è 
una scelta strana.
Io avevo capito che in uno script che gira su una macchina della rete 
domestica tu volessi l'indirizzo esterno.