2009-02-20 13 views

risposta

2

Non so se v'è un tool a riga di comando a disposizione, ma si può semplicemente scrivere uno in C# (dovrebbe funzionare con Mono):

class Program 
{ 
    static void Main(string[] args) 
    { 
     Console.WriteLine(System.Guid.NewGuid().ToString()); 
    } 
} 

Si può facilmente modificare il programma per cambiare la formattazione del GUID, copialo negli appunti o qualsiasi altra cosa si adatti alle tue necessità.

+0

Beh ho bisogno per essere sicuri che utilizzano lo stesso algoritmo per generare il GUID e dal momento che Mono non è ufficialmente MS, non so se usano lo stesso algoritmo, hai qualche specifica a riguardo? –

+0

Mono probabilmente potrebbe utilizzare un'implementazione diversa ma è possibile eseguire lo strumento utilizzando Mono su Windows e Unix/Linux. Solo perché sono curioso: perché hai bisogno dello stesso algoritmo su entrambe le piattaforme? Il GUID sarà ancora univoco perché un campo nel GUID specifica l'algoritmo utilizzato. –

+2

L'intera idea di un GUID è che è globalmente unica se l'algoritmo e il generatore di numeri casuali sono all'altezza. Penso che saresti al sicuro con diversi algoritmi che generano GUID. – Wedge

0

Ci sono tonnellate di online apps per farlo.

Se si utilizza PHP, è possibile utilizzare la funzione uniqid.

Ho trovato un programma Java puro per farlo a http://jug.safehaus.org/. Dovrebbe funzionare ovunque tu possa installare Java.

2

Qualcosa di utile da sapere:

L'ordine dei byte di Guid.ToByteArray() in C# e il tipo SQL Server GUID è:

 { 3, 2, 1, 0, 5, 4, 7, 6, 8, 9, 10, 11, 12, 13, 14, 15 }; 

Un Oracle GUID creati utilizzando SYS_GUID() e memorizzata come RAW [16] è ordinato:

 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; 

Potete trovare questo online GUID converter a portata di mano. Non sono sicuro che la fonte sia disponibile per uso personale, ma non dovrebbe essere troppo difficile da capire.

+0

La rappresentazione della stringa non dovrebbe essere la stessa, indipendentemente dall'ordine dei byte sottostanti? – Joey

+0

Sì, ma questo è solo un suggerimento utile offerto nel caso in cui si abbia a che fare con un GUID in ordine di byte. – crb

0

In Windows XP, è possibile utilizzare quanto segue nella finestra di comando.

uuidgen.exe 
+1

'uuidgen' non è disponibile in Windows; fa parte di Platform SDK/Windows SDK. – Helen

29

progetto 'e2fsprogs' mantenere utilità uuidgen.

http://e2fsprogs.sourceforge.net/

è già disponibile su ogni Linux/* BSD distribuzioni.

Per Windows, consiglio di installare Cygwin, il pacchetto 'e2fsprogs' disponibile da lì!

Come rapporto j4y questa utilità è disponibile in MAC OS.

basta eseguire:

 
    $ uuidgen -r # random based UUID/GUID 
    $ uuidgen -t # time based UUID/GUID 
+5

funziona anche su OSX Lion, ma senza parametri. – j4y

+0

@ j4y. Grazie per l'informazione! – gavenkoa

+1

Il pacchetto Cygwin è "util-linux" [Elenco pacchetto] (http://www.cygwin.com/cgi-bin2/package-cat.cgi?file=x86%2Futil-linux%2Futil-linux-2.21.2- 1 & grep = uuidgen) Il comando funzionerà anche senza parametri in cygwin. –