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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


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


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
Obtener la ip de un host
« en: 5 Septiembre 2014, 17:53 pm »

Hola conseguir hacer lo con este codigo:

Código
  1. memset(&configs,0,sizeof(configs));
  2. configs.ai_protocol = IPPROTO_TCP;
  3. configs.ai_socktype = SOCK_STREAM;
  4. configs.ai_family = AF_INET;
  5. configs.ai_flags = AI_PASSIVE;
  6.  
  7. iResult = getaddrinfo("www.pruebasdephp.hol.es","80",&configs,&result);
  8. if(iResult != 0){
  9. string msg = "Can't resolve google";
  10. msg += itoa(iResult);
  11. MessageBox(NULL,msg.c_str(),"Error",MB_ICONERROR);
  12.  
  13. }else
  14. MessageBox(NULL,inet_ntoa((in_addr &)(result->ai_addr)),"Address",MB_ICONEXCLAMATION);
  15.  

Usando getaddrinfo() pero aqui se necesita dar el protocolo, flags ...

Código
  1. params param;
  2. hostent * host;
  3. strcpy_s(param.web,80,"http://www.pruebasdephp.hol.es");
  4. param.port = 80;
  5. //now get the ip
  6. cout << param.web;
  7. host = gethostbyname(param.web);
  8.  
  9. in_addr addr;
  10. memcpy_s(&addr,sizeof(in_addr),host->h_addr_list[0],host->h_length); // Infraccion de acceso
  11.  

Aqui al utilizar gethostbyname() me tira un error de infraccion de acceso al copiar la memoria. Poruqe pasa esto?

Saludos


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Obtener la ip de un host
« Respuesta #1 en: 5 Septiembre 2014, 17:59 pm »

No intente ponerlos en un programa y compilar ... pero a getaddrinfo no le pasas http y a gethostbyname si, ademas deberias SIEMPRE comprobar el valor de retorno, gethostbyname puede devolver NULL en caso de error.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
patilanz


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
Re: Obtener la ip de un host
« Respuesta #2 en: 5 Septiembre 2014, 19:13 pm »

Pues si efectivamente era esto. El http pero porque?
Retornaba NULL pero como lo hice rapido para probar una cosa deje sin escribir un if pensando que funciona bien y que el error esta en memcpy. 1 hora por no poner un if.


Vale gracias resuelto pero porque es tan importante el http?
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Obtener la ip de un host
« Respuesta #3 en: 5 Septiembre 2014, 19:15 pm »

No es importante, sobra, no es parte del host; es un protocolo, podrias poner ftp:// tambien, no tiene sentido cuando se esta resolviendo un host.
« Última modificación: 5 Septiembre 2014, 19:17 pm por Eternal Idol » En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
patilanz


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
Re: Obtener la ip de un host
« Respuesta #4 en: 5 Septiembre 2014, 19:17 pm »

Gracias aqui pongo el codigo que funciona:

Código
  1. int _tmain(int argc, _TCHAR* argv[])
  2. { struct params{
  3. char web[80];
  4. int port;
  5. in_addr ip;
  6. };
  7.  
  8. WSADATA wsadata;
  9. WSAStartup(MAKEWORD(2,2),&wsadata);
  10.  
  11. params param;
  12. hostent * host;
  13. strcpy_s(param.web,80,"www.pruebasdephp.hol.es");
  14. param.port = 80;
  15. //now get the ip
  16. cout << param.web;
  17. host = gethostbyname(param.web);
  18. if(host == NULL)
  19. cout << "error: " << host;
  20.  
  21. param.ip = *(struct in_addr *)host->h_addr;
  22. cout << inet_ntoa(param.ip);
  23. getchar();
  24. return 0;
  25. }
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Obtener la ip de un host
« Respuesta #5 en: 5 Septiembre 2014, 19:18 pm »

Ese codigo sigue siendo incorrecto, mostras en pantalla que fallo gethostbyname pero la ejecucion del programa continua, no podes desreferenciar host si es NULL (cosa que haces en la linea 21).
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
patilanz


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
Re: Obtener la ip de un host
« Respuesta #6 en: 5 Septiembre 2014, 22:58 pm »

Bueno ya solo era una prueba  ;D imprimo el error un getchar y return. Asi mejor ? O se puede anadir algo mas? Un log de errores ?
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Especificar host en ettercap ( host scan )
Hacking
Sauruxum 6 9,136 Último mensaje 11 Enero 2011, 22:58 pm
por y0g-s0th0th
Obtener Ip Sabiendo el Host
.NET (C#, VB.NET, ASP)
WIитX 1 2,123 Último mensaje 14 Septiembre 2012, 16:26 pm
por seba123neo
Error al conectar al host - no se puede abrir una conexión al host en el puerto
Hacking
AdeLax 2 15,274 Último mensaje 16 Septiembre 2012, 00:29 am
por AdeLax
Obtener los nombres de host con nmap
Redes
Root~ 8 10,757 Último mensaje 13 Agosto 2015, 13:56 pm
por Gh057
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines