Hack x Crack - Comunidad de Seguridad informática

Programación => C / C++ => Mensaje iniciado por: caronte en Septiembre 05, 2014, 06:46:06 pm

Título: [SOLUCIONADO] Problema con asignacion de ip
Publicado por: caronte en Septiembre 05, 2014, 06:46:06 pm
 hola a todos
Código: [Seleccionar]
int conecta_socket()
{
int conexion;
struct sockaddr_in destino;
struct hostent *target;

target=gethostbyname("www.google.com");
if (target==NULL)
strerror(h_errno);

        destino.sin_family= AF_INET;
destino.sin_port=htons(80);
destino.sin_addr=*(struct in_addr *) target->h_addr;
memset((&destino.sin_zero), '\0', 8);

conexion=connect(mi_socket,(struct sockaddr *)&destino,sizeof(destino));
if (conexion==0)
printf("[+] SOCKET[%d] CONECTADO CON EXITO\n",conexion);
if (conexion==-1)
{
printf("[!] ERROR CONECTANDO SOCKET: %s\n",strerror(errno));
estado_conexion=-1;
}
return 0;
A ver si alguien me puede decir porque hace un segmentacion fault en esta linea:
Código: [Seleccionar]
destino.sin_addr=*(struct in_addr *) target->h_addr;
Llevo dias dandole vueltas y siguiendo la ejecucion con gdb aqui es donde hace violacion de segmento.
Título: Re:Problema con asignacion de ip
Publicado por: stakewinner00 en Septiembre 05, 2014, 09:20:56 pm
Pon un link con todo el code, así es más fácil de mirarlo.
Título: Re:Problema con asignacion de ip
Publicado por: caronte en Septiembre 06, 2014, 08:43:54 pm
Gracias por la respuesta!

Al ordenar un poco el codigo para presentarlo al foro me he dado cuenta del error.

En el argumento que le paso a la funcion  de
Código: [Seleccionar]
gethostbyname();, "google.com" en este caso, estaba el error. En el codigo original no era google.com sino:
Código: [Seleccionar]
gethostbyname("host/directorio/directorio");. Y era ese formato el que causaba el segmentation fault.
Decir que el compilador lo pasa por alto y que es un error muy tonto, si.
 :-X