elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Obtener el nombre de PC
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Obtener el nombre de PC  (Leído 2,466 veces)
.:WindHack:.

Desconectado Desconectado

Mensajes: 167

Prisionero de mi propia mente...


Ver Perfil WWW
Obtener el nombre de PC
« en: 16 Mayo 2010, 21:01 pm »

Ya había programado esta función en Delphi, así que me decidí a traducirla a C/C++.

Código
  1. /* DaW - Labs - http://daw-labs.com */
  2.  
  3. #include <windows.h>
  4.  
  5. int main(int argc, CHAR* argv[])
  6. {
  7. char Buffer[MAX_COMPUTERNAME_LENGTH + 1];
  8. DWORD nSize = sizeof(Buffer);
  9. if (GetComputerName(Buffer,&nSize))
  10. {
  11. MessageBox(0,Buffer,"Nombre de PC",MB_OK | MB_ICONINFORMATION);
  12. }
  13. return 0;


« Última modificación: 16 Mayo 2010, 21:16 pm por .:WindHack:. » En línea

Follow me on Twitter: @windhack | Visit my website: www.daw-labs.com

"The only thing they can't take from us are our minds."
Foxy Rider


Desconectado Desconectado

Mensajes: 2.407


Deprecated


Ver Perfil WWW
Re: Obtener el nombre de PC
« Respuesta #1 en: 16 Mayo 2010, 21:40 pm »

Yo lo haría así, me parece más correcto (aún así siendo una forma vaga de escribirlo) ...
La forma Windows y forma POSIX

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #ifdef _WIN32
  5. #   include <windows.h>
  6. #   define MAX_HOSTNAME_LEN MAX_COMPUTERNAME_LENGTH
  7. #   define mGetComputerName(x,y) !GetComputerNameExA(ComputerNameDnsHostname,x,y)
  8. #else
  9. #   include <unistd.h>
  10.    /* Nos guiamos por lo que define el estandar POSIX, otros sistemas Unix/Unix-Like usan HOST_NAME_MAX */
  11. #   define MAX_HOSTNAME_LEN 255
  12. #   define mGetComputerName(x,y) gethostname(x,y)
  13. #endif
  14.  
  15.  
  16. char* getComputerName()
  17. {
  18.    char* mName = (char*) malloc(MAX_HOSTNAME_LEN +1);
  19.    if (mGetComputerName(mName,MAX_HOSTNAME_LEN) != 0)
  20.    {
  21.        free(mName);
  22.        mName = 0;
  23.    }
  24.    return mName;
  25. }
  26.  
  27.  
  28. int main()
  29. {
  30.    printf("Hostname : %s",getComputerName());
  31.    return 0;
  32. }
  33.  
  34.  

y si estamos en más exigentes y en modo de "Pokemon exception handling" (For when you just gotta catch ’em all!), podés verificar el malloc() .... además agregar correspondiente free()

Saludos.

Edit: me olvidé de mencionar el free() xP


« Última modificación: 17 Mayo 2010, 01:58 am por vertex@Symphony » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[RETO] Obtener nombre de archivo « 1 2 3 4 »
Programación Visual Basic
Psyke1 37 17,073 Último mensaje 15 Febrero 2011, 16:08 pm
por Psyke1
[Sockets] Obtener Nombre del archivo
.NET (C#, VB.NET, ASP)
kub0x 3 3,051 Último mensaje 14 Abril 2012, 20:06 pm
por kub0x
Como obtener nombre de red?
Desarrollo Web
L0Ko 1 2,556 Último mensaje 18 Julio 2012, 23:49 pm
por darkvidhack
Obtener nombre red ssid?
Hacking Wireless
L0Ko 2 3,469 Último mensaje 22 Julio 2012, 19:23 pm
por P4nd3m0n1um
[batch] OBTENER NOMBRE CON EXTENSION « 1 2 »
Scripting
rochro 13 8,603 Último mensaje 13 Marzo 2014, 21:32 pm
por rochro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines