Autore Topic: Identificare univocamente un pc  (Letto 2608 volte)

  • Visitatore
Identificare univocamente un pc
« il: 26 Marzo 2009, 20:45:52 »
C'è una funzione del genere in gambas o debbo appoggiarmi al mac address della scheda di rete ? Se per caso il pc non ha la scheda di rete ?

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Identificare univocamente un pc
« Risposta #1 il: 27 Marzo 2009, 01:10:25 »
Potresti provare con gli ID degli hard-disk, prelevabili da /dev/disk/by-id.
Anche gli ID degli HD sono univochi ed in teoria potresti stare tranquillo che nel 99,99% dei casi c'è almeno un HD per computer.

Puoi fare così:
Codice: [Seleziona]

DIM ListaID AS String[]
DIM ID AS String
  ListaID = Dir("/dev/disk/by-id")
  ID = ListaID[0]
Visita il mio sito personale: http://www.leonardomiliani.com

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Identificare univocamente un pc
« Risposta #2 il: 27 Marzo 2009, 10:33:46 »
Se non ha scheda rete, quale sarebbe lo scopo?

Puoi fare come Microsoft, calcolandoti una checksum, articolata sulla struttura hardware del sistema (es. di leo)...

Comunque, da qualche parte (anche in /proc) dovrebbe esserci un ID, relativo all'installazione, però al momento non sò dove...

  • Visitatore
Re: Identificare univocamente un pc
« Risposta #3 il: 27 Marzo 2009, 14:27:52 »
Stavo pensando ad un programmino da mettere in chiavetta USB che mi caricasse delle impostazioni a seconda del PC su cui la metto senza legami all'utente loggato ( file in home )

Nonostante ci sia l'eventualità che manchi l'HD (la distro che uso io nasce per chiavetta USB, quindi senza bisogno di HDD, solo che io l'ho installata) penso potrebbe esser una buona idea quella di identificare il pc in base al HDD .. proverò ...

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Identificare univocamente un pc
« Risposta #4 il: 28 Marzo 2009, 12:33:59 »
Infatti il trucco dell'ID dell'HDD io l'avevo implementato per una specie di sistema di registrazione dei programmi in VB e poi l'avevo convertito anche in Gambas.
In pratica si trattava di calcolare un codice a partire dall'ID dell'HDD, inviarlo allo sviluppatore del software che, tramite un algoritmo, calcolava la chiave di registrazione. Questa veniva rispedita all'utente che la inseriva nel programma. Un algoritmo (identico a quello con cui era stata calcolata) controllava che la chiave fosse "adeguata" all'HD e registrava il programma. In questa maniera non si poteva usare la stessa chiave su 2 installazioni del programma su 2 macchine diverse perché la chiave calcolata per il 1° computer non funzionava sul 2° computer.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Identificare univocamente un pc
« Risposta #5 il: 28 Marzo 2009, 13:35:11 »
A mio parere il MAC della scheda di rete sarebbe la soluzione sicuramente più funzionale.....infatti trovare due MAC uguali è impossibile....

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Identificare univocamente un pc
« Risposta #6 il: 28 Marzo 2009, 16:29:03 »
Anche gli ID degli HD sono univoci, per cui non è possibile trovare 2 ID identici.

Semplicemente, puoi impostare il tuo software in modo che controlli prima la presenza della scheda di rete; se assente, controlla la presenza di un HD.
Cmq anche un dispositivo USB viene registrato nel sistema, quindi un HD sarà sempre presente, anche se stai usando un sistema avviato da penna.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Identificare univocamente un pc
« Risposta #7 il: 30 Marzo 2009, 01:36:04 »
Non sò però se, riguardo alla chiave usb, il concetto dell'id univoco sia uguale a quello dell'hd.

Premetto che a riguardo ne sò veramente poco, perchè finora non mi è mai servita una cosa del genere, ma da quanto visto durante la creazione del device per la usb, mi è sembrato che il sistema (udev) identifichi la chiave (o quant'altro...) con un identificativo univoco, ma all'interno dello stesso sistema, ovvero, un'altro sistema dava un id diverso.

E' pur vero che, una volta che il sistema determina un id per una penna usb, successivamente utilizza lo stesso id per identificare la stessa chiave; non sò al momento come questo avvenga, però funziona così. Però è anche vero che la stessa chiave assume un id diverso se inserita in un'altro sistema, che seguirà comunque la stessa logica.
Ho anche notato che la chiave, se nuovamente formattata, viene riconosciuta con un nuovo device, per cui penso proprio che non sia contrassegnata internamente in modo univoco.

Cosa diversa, invece, sono gli hd e cd/dvd, perlomento quelli installati all'interno del pc (non quelli esterni usb, che vengono gestiti da un proprio hardware).

  • Visitatore
Re: Identificare univocamente un pc
« Risposta #8 il: 04 Aprile 2009, 15:03:01 »
Citazione

Codice: [Seleziona]

DIM ListaID AS String[]
DIM ID AS String
  ListaID = Dir("/dev/disk/by-id")
  ID = ListaID[0]


Ottimo ... bisogna però aggiungere
 a ListaID = Dir("/dev/disk/by-id")
.sort()
altrimenti prende una delle partizioni a caso

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Identificare univocamente un pc
« Risposta #9 il: 05 Aprile 2009, 11:42:50 »
Sì, è vero.
Visita il mio sito personale: http://www.leonardomiliani.com