sabato 21 agosto 2010

Gambas - Conoscere il proprio indirizzo IP



Lavorando ad un progettino avevo pensato alla possibilità di conoscere l'indirizzo IP dell'utente. Questo può essere utile quando si ha la necessità di conoscere l'indirizzo con cui ci si affaccia alla rete magari per comunicare con altri computer. Gambas, che io sappia, non ha librerie o funzioni particolari che permettano di svolgere tale compito e pertanto ci si deve affidare ad un semplice comando esterno che verrà intercettato e mostrato a schermo.

Il nostro lavoro verrà svolto da una riga di comando:

wget http://checkip.dyndns.org/ -q -O - |grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'

Esso non fa altro che rivolgersi al servizio http://checkip.dyndns.org/ (che altri non è che una riga di testo del tipo)

Current IP Address: 93.xxx.xxx.xx

e ne preleva solo le cifre, ovvero l'indirizzo IP. In questo modo ci verrà restituito il nostro indirizzo.

La funzione Gambas che ci restituirà l'IP sarà:


Come si vede la funzione è semplice. Essa dichiara una variabile di nome result di tipo stringa che conterrà l'output del comando. La riga successiva è l'esecuzione del comando visto prima con relativo redirect sulla variabile appena dichiarata. Ottenuto l'IP lo restituiamo con RETURN.

2 commenti:

fsurfing ha detto...

non è molto bello usare "result" come nome di variabile in gambas, result infatti viene utilizzato dal gamberetto per indicare il puntatore a una raccolta di recordset di una query su database.
Su programmi molto ampi questo potrebbe generare dei problemi.

a parte questo ottimo sistema per sapere il proprio ip.
si poteva realizzare senza l' uso del terminale ma non sarebbe rimasto così "pulito"

OpenCode ha detto...

Il mio è un pezzo di codice. È puramente indicativo ciò che dico. Se la variabile da fastidio la si può modificare. Comunque ho cambiato il nome della variabile. :-)

Lo so che alcune cose le si potevano fare in Gambas puro ma così si perdeva la linearità del codice.

Related Posts with Thumbnails