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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con conversión
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con conversión  (Leído 1,452 veces)
Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Ayuda con conversión
« en: 22 Junio 2015, 15:47 pm »

Desesperado.

Código
  1. u_char *mac_adaptador = (u_char *)pAdapter->Address;
Funciona, pasa de binario a hexadeciaml, de byte a u_char (cont char) perfecto.

¿Pero ahora como hago para pasar una string que contiene la ip de la gateway "192.168.1.1" a hexadecimal que sería: "c0 a8 01 01" y meterlo en un u_char?

Código
  1. u_char *ip_gateway = (u_char *)(byte *)pAdapter->GatewayList.IpAddress.String

Desesperante 50 pestañas y nada.  :o :o :o :o :o

Por no hablar de como obtener el tamaño de los u_char, la verdad nunca los he estudiado y estoy bastante liado.

Edito: Os paso el código con todo lo que tengo:

Código
  1. u_char *mac_adaptador = (u_char *)pAdapter->Address;//reinterpret_cast<u_char*>(pAdapter->Address);
  2. u_char *ip_gateway = (u_char *)(byte *)pAdapter->GatewayList.IpAddress.String;
  3. u_char *ip_cliente = (u_char *)pAdapter->IpAddressList.IpAddress.String;
  4. u_char ****** = (u_char *)"192";
  5. printf("***** %x\n", *****[0]);
  6. //c0 a8 01 05 -> 192.168.1.5
  7. for (int i = 0; i < strlen((char *)ip_cliente); i++)
  8. printf("%c", ip_cliente[i]);
  9. printf("\n");
  10.  
  11. for (int i = 0; i < sizeof(ip_cliente); i++)
  12. printf("%x", ip_cliente[i]);
  13. printf("\n");
  14.  
  15. //c0 a8 01 01 -> 192.168.1.1
  16. for (int i = 0; i < strlen((char *)ip_gateway); i++)
  17. printf("%c", ip_gateway[i]);
  18. printf("\n");
  19.  
  20. for (int i = 0; i < strlen((char *)ip_gateway); i++)
  21. printf("%x", ip_gateway[i]);
  22. printf("\n");
  23.  
  24.  
  25. for (int i = 0; i < pAdapter->AddressLength; i++)
  26. printf("%x", mac_adaptador[i]);
  27. printf("\n");

Código:
***** 31
192.168.1.5
3139322e
192.168.1.1
3139322e3136382e312e31
7218dbc397da

Salida, compilación sin errores.

Como se puede observar la MAC es correcta, las IPv4 las muestra bien en decimal, pero en hexadecimal la salida no es correcta.

Perdonad, la variable mi.erda sale como **** ;)

Curioso esto funciona:

Código
  1. int primertermino = atoi("192");
  2. stringstream stream;
  3. stream << hex << primertermino;
  4. string result(stream.str());
  5.  
  6. for (int i = 0; i < 3; i++)
  7. printf("%c", result[i]);
  8. printf("\n");

Pero lo tengo en char* no en u_char, y tendría que hacerlo para cada numero separado por punto de la ip.

Código
  1. u_char* ipv4_to_hex(char *ip)
  2. {
  3. u_char ip_hex[4];
  4. in_addr addr;
  5. addr.S_un.S_addr = inet_addr(ip);
  6. ip_hex[0] = addr.S_un.S_un_b.s_b1;
  7. ip_hex[1] = addr.S_un.S_un_b.s_b2;
  8. ip_hex[2] = addr.S_un.S_un_b.s_b3;
  9. ip_hex[3] = addr.S_un.S_un_b.s_b4;
  10. return ip_hex;
  11. }


« Última modificación: 22 Junio 2015, 19:25 pm por Kaxperday » En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con conversion de video
Multimedia
AYP11 4 2,604 Último mensaje 29 Noviembre 2007, 12:38 pm
por Songoku
Ayuda en C++ (Conversion de Caracteres)
Programación C/C++
DragonShiryu 7 5,518 Último mensaje 15 Septiembre 2011, 00:45 am
por Eternal Idol
Ayuda con conversion a preg_match
Desarrollo Web
Alex_bro 3 2,971 Último mensaje 30 Octubre 2011, 23:46 pm
por Alex_bro
¿AYUDA A PRINCIPIANTE? Script de conversión numérica
Scripting
bdred 5 3,112 Último mensaje 7 Abril 2018, 13:29 pm
por Sentex
Ayuda con la conversión de notación infija a postfija
Programación C/C++
GominaTilted 1 3,445 Último mensaje 18 Abril 2019, 07:36 am
por Beginner Web
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines