Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] ¿Cómo hacer DNS en C++ con gethostbyaddr?

Estas en el tema de ¿Cómo hacer DNS en C++ con gethostbyaddr? en el foro de C/C++ en Foros del Web. Hola amigos!! Necesito hacer eso que dice el título, he encontrado varias formas, pero no me funcionan y además son algo complejas, creo que debería ...
  #1 (permalink)  
Antiguo 29/04/2014, 00:42
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
¿Cómo hacer DNS en C++ con gethostbyaddr?

Hola amigos!!

Necesito hacer eso que dice el título, he encontrado varias formas, pero no me funcionan y además son algo complejas, creo que debería haber una manera fácil de poder hacer un DNS a una IP.
Finalmente me he decidido a realizar un DNSBL en C++ y no un Escaner de Puertos, ya que el Escaner es más difícil de hacerlo, igual tendré que usar Threads.

En lo personal se como trabaja un DNSBL (Servidor de Nombre de Dominio en la Lista Negra / Domain Name Server in Black List, son mejores y más rápidos, así que por el momento me pondré a trabajar con un DNSBL en C++, en Python lo se hacer, aunque nunca lo hice, pero si podría hacerlo...

En Python eso se consigue tan simplemente con esto por ejemplo:


Código Python:
Ver original
  1. import socket
  2.  
  3. try:
  4.     socket.gethostbyaddr("181.166.148.181")
  5.     print "IP Resuelta"
  6. except:
  7.     print "IP No Resuelta"
  8.  
  9. raw_input()

¿Cómo se podría hacer eso de una forma simple en C++?

Gracias!

Última edición por Principe_Azul; 29/04/2014 a las 00:48 Razón: Se me escapó "import socket" del HIGHLIGHT
  #2 (permalink)  
Antiguo 29/04/2014, 23:09
Avatar de Drewermerc  
Fecha de Ingreso: febrero-2014
Mensajes: 185
Antigüedad: 10 años, 2 meses
Puntos: 5
Respuesta: ¿Cómo hacer DNS en C++ con gethostbyaddr?

hola principe.
nose si aun quieras informacion pero bueno yo encontreesto y en efecto no es muy compicado es como usar sockets pero solo agrgando una funciones mas bueno espeor quete sirva aqui te dejo lo que encontre solo que son en c pero supongo que si te funcionara igual.

http://stackoverflow.com/questions/1...-gethostbyaddr

http://www.beej.us/guide/bgnet/outpu...bynameman.html

http://foro.elhacker.net/programacio...html;msg993558

http://www.ccplusplus.com/2011/08/ge...le-c-code.html

saludos drewermerc.
  #3 (permalink)  
Antiguo 30/04/2014, 05:47
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cómo hacer DNS en C++ con gethostbyaddr?

Hola campeón!
Gracias por tu ayuda, encontré este código que es bastante simple y me ha servido:

Código C++:
Ver original
  1. #include <windows.h>
  2. #include <winsock2.h>
  3. #include <ostream>
  4. #include <sstream>
  5. #include <cstdlib>
  6. #include <iostream>
  7. #include <stdio.h>
  8.  
  9. using namespace std;
  10.  
  11.  
  12. int main() {
  13.     int err;
  14.     WSADATA wsadata;
  15.     err = WSAStartup(MAKEWORD(2, 2), &wsadata);
  16.     if(err) {
  17.         cout << "Error!" << endl;
  18.         exit(0);
  19.     }
  20.  
  21.     char ipaddr [] = "181.166.148.181";
  22.     unsigned long inaddr = inet_addr ( ipaddr );
  23.     hostent *myhostent = gethostbyaddr( (const char FAR *)&inaddr, sizeof ( in_addr ), 0 );
  24.  
  25.     if ( myhostent ) cout << ( ipaddr, ("\n\n"), myhostent->h_name );
  26.     else
  27.         cout << ( ipaddr, ("\n\n"), "No se pudo resolver el host" );
  28.     WSACleanup();
  29. }

Ese programa devuelve:

181-148-166-181.fibertel.com.ar

Osea funciona perfectamente!!

Gracias amigo Drewermerc !

Etiquetas: dns, funcion, puertos, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:52.