2009-02-20 13 views

Respuesta

2

No sé si hay una herramienta de línea de comandos disponibles, pero se puede simplemente escribir uno en C# (debería funcionar con Mono):

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

puede modificar fácilmente el programa para cambiar el formato del GUID, cópielo en el portapapeles o lo que sea que se ajuste a su necesidad.

+0

Bueno, necesita estar seguro de que utilizan el mismo algoritmo para generar el GUID , y dado que Mono no es oficialmente MS, no sé si utilizan el mismo algoritmo, ¿tiene alguna especificación sobre esto? –

+0

Mono probablemente use una implementación diferente pero podría ejecutar la herramienta usando Mono en Windows y Unix/Linux. Solo porque tengo curiosidad: ¿por qué necesitas el mismo algoritmo en ambas plataformas? El GUID seguirá siendo único porque un campo en el GUID especifica el algoritmo utilizado. –

+2

La idea de un GUID es que es globalmente único si el algoritmo y el generador de números aleatorios están a la altura. Creo que estarías seguro con diferentes algoritmos que generan GUID. – Wedge

0

Hay toneladas de online apps para hacerlo.

Si está utilizando PHP, puede usar la función uniqid.

Encontré un programa Java puro para hacerlo en http://jug.safehaus.org/. Eso debería funcionar en cualquier lugar donde puedas instalar Java.

2

Algo útil saber:

El orden de bytes de Guid.ToByteArray() en C# y el tipo GUID de SQL Server es:

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

Un Oracle GUID creado usando SYS_GUID() y se almacena como RAW [16] se ordena:

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

Usted puede encontrar esta online GUID converter práctico. No estoy seguro si la fuente está disponible para su propio uso, pero no debería ser demasiado difícil de descifrar.

+0

¿No debería ser la misma representación de cadena, independientemente del orden de bytes subyacente? – Joey

+0

Sí, pero este es solo un consejo práctico que se ofrece en caso de que tenga que tratar con un GUID en orden de bytes. – crb

0

En Windows XP, puede usar lo siguiente en la ventana de comandos.

uuidgen.exe 
+1

'uuidgen' no está disponible de fábrica en Windows; es parte de Platform SDK/Windows SDK. – Helen

29

proyecto '' e2fsprogs mantener utilidad uuidgen.

http://e2fsprogs.sourceforge.net/

Ya está disponible en cualquier Linux/BSD * distros.

Para Windows, recomiendo instalar Cygwin, ¡el paquete 'e2fsprogs' está disponible desde allí!

Como informe j4y esta utilidad está disponible bajo MAC OS.

Sólo tiene que ejecutar:

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

también funciona en OSX Lion, pero sin parámetros. – j4y

+0

@ j4y. ¡Gracias por la información! – gavenkoa

+1

El paquete Cygwin es "util-linux" [Listado de paquetes] (http://www.cygwin.com/cgi-bin2/package-cat.cgi?file=x86%2Futil-linux%2Futil-linux-2.21.2- 1 & grep = uuidgen) El comando también funcionará sin parámetros en cygwin. –

Cuestiones relacionadas