[Python] Indirizzi delle macchine di una rete locale

Manlio Perillo manlio.perillo a gmail.com
Mar 22 Nov 2011 23:34:00 CET


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Il 22/11/2011 22:28, Daniele Zambelli ha scritto:
> Il 22 novembre 2011 21:05, Daniele Varrazzo <piro a develer.com> ha scritto:
>> [...]
>>> Magari tu stai pensando: i vari utenti non possono semplicemente
>>> collegarsi via scp al computer dove risiede il file e scaricarselo (che
>>> tra l'altro è la cosa più sana da fare, ma stavo assumendo che all'OT
>>> questo non andasse bene)?
> 
> Scenario: aula di informatica, macchine Windows, 28 alunni di prima
> (superiore) che devono lavorare su un file predisposto da me. Quando
> lo metto sul server e dico ai ragazzi di scaricarlo:
> 
> - almeno 5 non capiscono come fare
> - 5 non capiscono dove si trova
> - 5 macchine non si connettono (dicono che la rete si "ingolfa" se
> tutti tentano di scaricare qualcosa)
> - e inoltre c'è sempre qualcuno che tenta di spostarlo o che lo apre
> invece di copiarlo.
> - ...
> 
> Almeno un quarto d'ora di panico totale.

Ad ogni lezione? E con gli stessi alunni?

> [...]
> 
> Ribadisco la mia ignoranza, ma gli strumenti che proponi:  "dsn per conoscere i
> nomi dei client, ssh server sui client, sftp sul server", utilizzare direttamente da SO, non attraverso un programma Python?
> 
> Ho un gruppo di alunni che intendeva lavorare ad un programma in
> Python per fare ciò, ma da come potete capire, non ho saputo dare loro
> delle giuste dritte.
> 

Visto come è fatta la tua rete, il programma è abbastanza semplice da
sviluppare.

Supponendo he:

* L'indirizzo IP del server sia noto
* Il file sia disponibile in una directory condivisa

allora il programma non deve fare altro che fare copiare un file dalla
directory remota sul server alla directory locale:

import os

SERVER = '192.168.0.1' # Indirizzo IP del server
REMOTE_HOME = r'C:\Lab' # Directory dove si trova il file della lezione
LOCAL_HOME = r'C:\Lab'  # Directory dove salvare il file sul PC locale

FILE_NAME = 'xxx' # Magari da interfaccia utente

REMOTE_PATH = os.path.join(REMOTE_HOME, FILE_NAME)
REMOTE_URI = r'\\%s\%s' % (SERVER, REMOTE_PATH) # XXX

LOCAL_PATH = os.path.join(LOCAL_HOME, FILE_NAME)

# Copia semplicemente il file
os.copy(REMOTE_PATH, LOCAL_PATH)


Non ho sottomano un computer Windows, e non so se il codice funziona.

In alternativa puoi rendere il file disponibile tramite HTTP come ti ha
suggerito Daniele (utilizzando il server HTTP della libreria standard di
Python)


Ciao  Manlio
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk7MI1gACgkQscQJ24LbaUSliACfTYznsNxT8di1piGQzCnx4MPC
Fj4AnRRpcVZuu3Q6RVNlCZAsagayF96+
=hsWt
-----END PGP SIGNATURE-----


Maggiori informazioni sulla lista Python