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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Convertir de u_int32_t a int y al reves
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Convertir de u_int32_t a int y al reves  (Leído 4,378 veces)
Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Convertir de u_int32_t a int y al reves
« en: 22 Enero 2014, 15:42 pm »

Buenas, hoy estaba programando una cosa con sockets y me encontre que tenia que pasar de u_int32_t a int y al revés. Vi cosas por internet pero no aclaran mucho. Alguien sabe como se puede pasar de u_int32_t a int no con código sino manualmente (con una calculadora en mano)? xD

Saludos y gracias


En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Convertir de u_int32_t a int y al reves
« Respuesta #1 en: 22 Enero 2014, 15:49 pm »

Un u_int32_t es un unsigned int en la inmensa mayoría de las maquinas actuales.

Pasar de u_int32_t a int sería dejarlo tal como esta, pasar de int a u_int32_t sería hacerle el valor absoluto.


« Última modificación: 22 Enero 2014, 15:51 pm por amchacon » En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Convertir de u_int32_t a int y al reves
« Respuesta #2 en: 22 Enero 2014, 16:36 pm »

Además, siempre puedes hacer un union.
En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Convertir de u_int32_t a int y al reves
« Respuesta #3 en: 22 Enero 2014, 20:04 pm »

Gracias por las respuestas, pero no me funciona nada xD.

Estaba editando el code del ejemplo de https://repolinux.wordpress.com/2011/09/18/libnet-1-1-tutorial/#example-6 para hacer spoof de la ip de origen, funciona pero no con la ip que quiero. Supongo que algo estaba haciendo mal.

ahora fijándome en todo el code veo que quizás no sea 32 bits sino 8

Código
  1. libnet_autobuild_arp (ARPOP_REQUEST,\
  2. src_mac_addr->ether_addr_octet,\
  3. [b](u_int8_t*)(&src_ip_addr), mac_zero_addr,[/b]\
  4. (u_int8_t*)(&target_ip_addr), l) == -1)

bueno, a ver si logro resolver el problema.
En línea

xv0


Desconectado Desconectado

Mensajes: 1.026



Ver Perfil
Re: Convertir de u_int32_t a int y al reves
« Respuesta #4 en: 22 Enero 2014, 20:42 pm »

Bueno, no entiendo esas definiciones de C, pero si estas trabajando con direcciones ipv4 estas son de 32 bits vamos que son un int, ejemplo: 0xffffffffff seria 255.255.255.255.
Las Mac serian 6 bytes, si no me confundo.

Y para ponerlas al reves o invertirlas puedes usar bswap en ASM en linea, o hacer algo en C. No se si eso responde tu pregunta.

Un saludo.
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Convertir de u_int32_t a int y al reves
« Respuesta #5 en: 22 Enero 2014, 20:50 pm »

Código
  1. union{
  2.    int a;
  3.    uint32_t b;
  4. }n;
  5.  
  6. n.a = 666;
  7. cout << n.b;
En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Convertir de u_int32_t a int y al reves
« Respuesta #6 en: 22 Enero 2014, 22:50 pm »

ivancea96, ya lo probe y tras estar rato probando me estoy dando cuenta de que lo que falla no es la transformación a unsigned de 32 sino luego con el
Código:
(u_int8_t*)(&src_ip_addr), mac_zero_addr,
de 8 bits. Por ejemplo la dirección "2080483526" me devuelve que la ip es 192.168.1.124 y la dirección "2080483526+1" me devuelve que es 26.121.117.141 no 192.168.1.125
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re:
« Respuesta #7 en: 22 Enero 2014, 23:35 pm »

Pon el code de como lo transformas, a ver

Enviado desde mi ST21i mediante Tapatalk
En línea

xv0


Desconectado Desconectado

Mensajes: 1.026



Ver Perfil
Re: Convertir de u_int32_t a int y al reves
« Respuesta #8 en: 22 Enero 2014, 23:45 pm »

Creo que estas incrementando mal.

Porque no pones las direcciones en hexadecimal. 192.168.1.124 = 0x7c01a8c0, tendrias que incremental 0x7c. "2080483526" en teoria tendria que devolver 198.168.1.124.

Un saludo.
En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Convertir de u_int32_t a int y al reves
« Respuesta #9 en: 23 Enero 2014, 15:39 pm »

hoy encontre como solucionarlo mientras estaba en clase cpu2 en efecto, así también funciona.

El problema era que yo lo hacia directamente y antes de hacerlo debería dividir las ips por octetos,
por ejemplo la ip 192.168.1.129 se tendría que convertir a binario (es como yo lo hice) y sería 11000000.10101000.00000001.10000001 entonces paso el "10000001000000011010100011000000" a decimal unsigned de 32 bits que es "2164369600" y cuando lo paso al socket ya lo lee como debería (192.168.1.129)
gracias a todos por su ayuda ;)
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
todos los avi se me graban al reves
Software
Cobac 2 2,351 Último mensaje 6 Junio 2003, 06:15 am
por Songoku
Por que las pelis se ponen al reves???
Software
chocholoco 2 2,019 Último mensaje 4 Abril 2003, 03:21 am
por chocholoco
Canopus imagen al reves
Multimedia
uce 2 1,711 Último mensaje 10 Marzo 2004, 21:29 pm
por uce
Videos Avi al reves
Multimedia
pretty0483 2 1,972 Último mensaje 5 Marzo 2006, 04:07 am
por pretty0483
pyrit al reves
Wireless en Linux
Dondvp 0 2,516 Último mensaje 10 Octubre 2011, 23:29 pm
por Dondvp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines