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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Comprobar conexion a internet desde c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Comprobar conexion a internet desde c  (Leído 4,482 veces)
iberodjmx@hotmail.es

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Comprobar conexion a internet desde c
« en: 5 Octubre 2012, 03:34 am »

Buenas noches he estado buscadole y la verdad no he logrado mucho soy nuevo en el foro y a veces un poco de ayuda se agradece, sucede que necesito programar un cliente en c que pueda comprobar la conexion a un sitio web en internet por algun puerto ej. 80, el host donde se ejecutara el cliente puede que tenga o no conexion por proxy por lo que de manera opcional se pondriasn en un archivo datos como son host proxy, puerto, usuario y contrasenia, si alguin pudiera orientarme en como poder lograr esto.

Como dato adicional estoy trabajando en un entorno windows 7.
Saludos y desde ya gracias


En línea

anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: Comprobar conexion a internet desde c
« Respuesta #1 en: 5 Octubre 2012, 11:09 am »

Código
  1. system("ping www.google.com -n 1000");
Los puertos no se pero con esto sabes el ping de alguna ip


En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: Comprobar conexion a internet desde c
« Respuesta #2 en: 5 Octubre 2012, 15:56 pm »

para hacer eso deberias aprender sobre sockets. no uso windows, pero quizas este codigo te deje un idea de lo que hay que hacer:

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <sys/types.h>
  4. #include <sys/socket.h>
  5. #include <netinet/in.h>
  6. #include <arpa/inet.h>
  7. #include <stdlib.h>
  8.  
  9. #define PORT 80
  10. #define IP "127.0.0.1"
  11.  
  12. void error(char* message);
  13.  
  14. int main() {
  15.  
  16. int sockfd;
  17. struct sockaddr_in serverAddr;
  18. struct in_addr *pServerAddr=NULL;
  19.  
  20. //estructura del server
  21. memset(&serverAddr, 0, sizeof(serverAddr));
  22. serverAddr.sin_port=htons(PORT);
  23. serverAddr.sin_family=AF_INET;
  24. pServerAddr=&(serverAddr.sin_addr);
  25. inet_aton(IP, pServerAddr);
  26.  
  27. //se declara el socket
  28. sockfd=socket(AF_INET, SOCK_STREAM, 0);
  29. if (sockfd < 0)
  30. error("ERROR: No se pudo abrir el socket.\n");
  31.  
  32. //se conecta con el servidor
  33. if (connect(sockfd, (struct sockaddr*)&serverAddr, sizeof(serverAddr)) < 0)
  34. error("ERROR: No se pudo conectar con el servidor.\n");
  35.  
  36. printf("Conexion establecida con %s por el puerto %d\n", IP, PORT);
  37.  
  38. //...
  39.  
  40. close(sockfd);
  41. return 0;
  42. }
  43.  
  44. void error(char* message) {
  45.  
  46. perror(message);
  47. exit(1);
  48. }

un saludo!

edito: para decir que en el caso que uses este codigo y no tengas un servidor web montado en tu ordenador, la salida del programa sera:

Código:
ERROR: No se pudo conectar con el servidor.
: Connection refused

o algo parecido. en cambio, si por ejemplo pones la ip de google.es (173.194.34.23), la salida del programa sera que se ha establecido conexion con el servidor. asi que te serviria para saber si una direccion ip tiene montada un servidor web o no.
« Última modificación: 5 Octubre 2012, 17:05 pm por xiruko » En línea

iberodjmx@hotmail.es

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Comprobar conexion a internet desde c
« Respuesta #3 en: 5 Octubre 2012, 19:19 pm »

Lesc omparto el codigo de lo que ya tengo:

Código:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

char SendBuff[512],RecvBuff[512];

int main(int argc, char *argv[]){
 
  WSADATA wsaData;
  SOCKET conn_socket;
  struct sockaddr_in server;
  struct hostent *hp;
  int resp;
 
  //Inicializamos la DLL de sockets
  resp=WSAStartup(MAKEWORD(1,0),&wsaData);
  if(resp){
    printf("Error al inicializar socket\n");
    getchar();return -1;
  }

  //Obtenemos la IP del servidor... en este caso
  // localhost indica nuestra propia máquina...
  hp=(struct hostent *)gethostbyname("10.x.x.x");

  if(!hp){
    printf("No se ha encontrado servidor...\n");
    getchar();WSACleanup();return WSAGetLastError();
  }

  // Creamos el socket...
  conn_socket=socket(AF_INET,SOCK_STREAM, 0);
  if(conn_socket==INVALID_SOCKET) {
    printf("Error al crear socket\n");
    getchar();WSACleanup();return WSAGetLastError();
  }
   
  memset(&server, 0, sizeof(server)) ;
  memcpy(&server.sin_addr, hp->h_addr, hp->h_length);
  server.sin_family = hp->h_addrtype;
  server.sin_port = htons(3128);

  // Nos conectamos con el servidor...
  if(connect(conn_socket,(struct sockaddr *)&server,sizeof(server)) == SOCKET_ERROR){
    printf("Fallo al conectarse con el servidor\n");
    closesocket(conn_socket);
    WSACleanup();getchar();return WSAGetLastError();
  }
  printf("Conexión establecida con: %s\n", inet_ntoa(server.sin_addr));
  strcpy(SendBuff,"connect");
  //Enviamos y recibimos datos...
  printf("Enviando Mensaje... \n");
  send(conn_socket,SendBuff,sizeof(SendBuff),0);
  printf("Datos enviados: %s \n", SendBuff);
 
  printf("Recibiendo Mensaje... \n");
  recv(conn_socket,RecvBuff, sizeof(RecvBuff), 0);
  printf("Datos recibidos: %s \n", RecvBuff);
 
  getchar();
 
  // Cerramos el socket y liberamos la DLL de sockets
  closesocket(conn_socket);
  WSACleanup();
  return EXIT_SUCCESS;
}


y con el cual lo que he logrado establecer la conexion con el servidor sin embargo una vez conectado hay que hacer una autenticacion en caso de que exista, mi pregunta es como consigo eso con c++ ya que como podran ver es codigo c++.

En la parte que dice:

Código:
printf("Enviando Mensaje... \n");
send(conn_socket,SendBuff,sizeof(SendBuff),0);

Creo que en la instruccion send es donde tendria que ir alguna instruccion como login: nombredeusuario \n password: micontrasenia y ahora si hacer peticiones de conexion a algun sitio web, la idea seria lograr la autenticacion una vez conectados al servidor proxy.

Saludos y gracias por sus aportaciones,
En línea

0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Comprobar conexion a internet desde c
« Respuesta #4 en: 5 Octubre 2012, 19:39 pm »

Lesc omparto el codigo de lo que ya tengo:

Código:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

char SendBuff[512],RecvBuff[512];

int main(int argc, char *argv[]){
 
  WSADATA wsaData;
  SOCKET conn_socket;
  struct sockaddr_in server;
  struct hostent *hp;
  int resp;
 
  //Inicializamos la DLL de sockets
  resp=WSAStartup(MAKEWORD(1,0),&wsaData);
  if(resp){
    printf("Error al inicializar socket\n");
    getchar();return -1;
  }

  //Obtenemos la IP del servidor... en este caso
  // localhost indica nuestra propia máquina...
  hp=(struct hostent *)gethostbyname("10.x.x.x");

  if(!hp){
    printf("No se ha encontrado servidor...\n");
    getchar();WSACleanup();return WSAGetLastError();
  }

  // Creamos el socket...
  conn_socket=socket(AF_INET,SOCK_STREAM, 0);
  if(conn_socket==INVALID_SOCKET) {
    printf("Error al crear socket\n");
    getchar();WSACleanup();return WSAGetLastError();
  }
   
  memset(&server, 0, sizeof(server)) ;
  memcpy(&server.sin_addr, hp->h_addr, hp->h_length);
  server.sin_family = hp->h_addrtype;
  server.sin_port = htons(3128);

  // Nos conectamos con el servidor...
  if(connect(conn_socket,(struct sockaddr *)&server,sizeof(server)) == SOCKET_ERROR){
    printf("Fallo al conectarse con el servidor\n");
    closesocket(conn_socket);
    WSACleanup();getchar();return WSAGetLastError();
  }
  printf("Conexión establecida con: %s\n", inet_ntoa(server.sin_addr));
  strcpy(SendBuff,"connect");
  //Enviamos y recibimos datos...
  printf("Enviando Mensaje... \n");
  send(conn_socket,SendBuff,sizeof(SendBuff),0);
  printf("Datos enviados: %s \n", SendBuff);
 
  printf("Recibiendo Mensaje... \n");
  recv(conn_socket,RecvBuff, sizeof(RecvBuff), 0);
  printf("Datos recibidos: %s \n", RecvBuff);
 
  getchar();
 
  // Cerramos el socket y liberamos la DLL de sockets
  closesocket(conn_socket);
  WSACleanup();
  return EXIT_SUCCESS;
}


y con el cual lo que he logrado establecer la conexion con el servidor sin embargo una vez conectado hay que hacer una autenticacion en caso de que exista, mi pregunta es como consigo eso con c++ ya que como podran ver es codigo c++.

En la parte que dice:

Código:
printf("Enviando Mensaje... \n");
send(conn_socket,SendBuff,sizeof(SendBuff),0);

Creo que en la instruccion send es donde tendria que ir alguna instruccion como login: nombredeusuario \n password: micontrasenia y ahora si hacer peticiones de conexion a algun sitio web, la idea seria lograr la autenticacion una vez conectados al servidor proxy.

Saludos y gracias por sus aportaciones,

Diria que es codigo C, no C++...

Y para autentificarte supongo que debe haber un protocolo o algo...

Saludos.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Conexión a internet con Linux desde Wifislax ????
Wireless en Linux
killo25 0 1,864 Último mensaje 11 Julio 2010, 18:41 pm
por killo25
Duda: Conexion a escritorio remoto de win desde Internet
Redes
Ahm_Shere 3 4,177 Último mensaje 2 Octubre 2011, 11:45 am
por Ahm_Shere
Problemas de conexión a Internet desde VirtualBox
Redes
carlos8suarez 4 7,964 Último mensaje 2 Abril 2012, 00:03 am
por adriandu
Comprobar conexión a internet en C++?
Programación C/C++
andrecid 1 2,618 Último mensaje 17 Octubre 2015, 20:59 pm
por ThunderCls
Problema de conexión a Internet desde Wi-Fi en una laptop
Hardware
LuisC24 0 2,038 Último mensaje 27 Diciembre 2022, 19:18 pm
por LuisC24
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines