IPFinder: il mio primo programma in Python + GTK
IPFinder è un programmino scritto da me, per diletto, che mostra il proprio IP di LAN e l’IP con cui si esce in Internet (quello del router tanto per capirci).

Leggendo, come di consueto, le ultime novità dal mondo del’informatica, sono capitato su questo articolo, ed in particolare su questo blog, ed ho detto: “PyGTK, perchè no?” E mi sono messo a sviluppare questo piccolo programma.
Esso è stato creato in linguaggio Python con le librerie grafiche GTK e PyGTK, scritto con Netbeans e disegnato con Glade.
In breve:
- Python è un linguaggio di programmazione
- GTK sono delle librerie grafiche (quelle con cui è stato scritto Gnome tanto per capirci)
- PyGTK sono delle librerie per interfacciare Python e GTK
- Netbeans è un IDE, ovvero un editor per scrivere codice, e non solo
- Glade serve per disegnare le interfacce grafiche basate su GTK
Cosa fa questo programma? Mostra l’ip della propria scheda di rete e l’ip che sia visto da Internet.
Ecco il listato di IPFinder.py:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | #!/usr/bin/env python __author__="ezhno" __date__ ="$22-dic-2008 18.55.30$" #if __name__ == "__main__": # print "Hello"; # Carico le librerie necessarie try: import gtk import gtk.glade import pygtk except: print "Devi installare le librerie GTK di Python" import os.path import re import urllib import socket import sys pygtk.require("2.0") # Funzione che riempie le caselle di testo def riempi_campi(): entry1.set_text(get_local_ip()) entry2.set_text(get_internet_ip()) # Funzione che restituisce l'ip locale def get_local_ip(remote = ('www.python.org',80)): try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(remote) except: return "Problema di connessione." ip, localport = s.getsockname() s.close() return ip; # Funzione che restituisce l'ip internet def get_internet_ip(): try: f = urllib.urlopen('http://checkip.dyndns.org') s = f.read() except: return "Problema di connessione." m = re.search("\d+\.\d+\.\d+\.\d+", s) return m.group(0) # Funzione per non lasciare appeso python quando si chiude la finestra def on_window1_destroy(widget, data=None): gtk.main_quit() # Funzione per aggiornare le caselle di testo def on_button1_clicked(widget, data=None): riempi_campi() # Binding tra eventi della parte grafica e le funzioni segnali = { 'on_window1_destroy': on_window1_destroy, 'on_button1_clicked': on_button1_clicked } # Caricamento interfaccia grafica try: gladeFile = gtk.glade.XML('/'.join([os.path.dirname(sys.argv[0]), 'IPFinder.glade'])) except: print "Impossibile aprire il file 'IPFinder.galde'" sys.exit(1) window1 = gladeFile.get_widget('window1') entry1 = gladeFile.get_widget('entry1') entry2 = gladeFile.get_widget('entry2') button1 = gladeFile.get_widget('button1') # Prima lettura degli ip riempi_campi() # Binding automatico tra eventi della parte grafica e le funzioni gladeFile.signal_autoconnect(segnali) # Visualizzazione if window1: window1.show() gtk.main() |
Lo si scarica da qui.
Estraetelo in una cartella e lanciatelo con:
1 | python IPFinder.py |
Lo so, non serve a nulla, è scritto male, ma sono fiero di aver creato un qualcosa con strumenti offerti gratuitamente.
Nessun articolo simile.
5 commenti »
RSS feed for comments on this post. TrackBack URL








e bravo ezhno.
non ti buttar giu’ si inzia sempre cosi.
continua cosi vedrai che arriverai anche tu a scrivere del buon
codice
ps: ho provato ad istallare netbeans lo trovo bellino
ciao Loris by Velug
riga 68: gladeFile = gtk.glade.XML(”.join([os.path.dirname(sys.argv[0]), ‘IPFinder.glade’]))
sennò non trova il file glade
e alla riga dopo hai scritto “galde” :P
auguri per il proseguimento :D
vabbè qua wordpress trasforma i due apici in virgolette…
comunque ho tolto la prima slash ;)
carino il programma
grazie del link, per adesso il blog di python è fermo, mi sto dedicando maggiormente a quello di ubuntu
ciao
Grazie, mi serve per un programma che sto facendo. Lo studio del tuo programmino mi aiuterà molto.
Bravo!