Tester la connexion internet

Code pour httpcheck.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <netinet/in.h> // Ajout de ce header pour définir sockaddr_in
#include <sys/socket.h>
#include <netdb.h>
#include <unistd.h>

#define HOST 'www.freebsd.org'
#define PORT 80

int estConnecteInternet() {
int sock;
struct sockaddr_in server;
struct hostent *host;

// Récupération de l'adresse IP du site web
host = gethostbyname(HOST);
if (host == NULL) {
perror('Résolution DNS a échoué');
return 0;
}

// Création du socket
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 0) {
perror('Erreur de création du socket');
return 0;
}

// Configuration de l'adresse du serveur
memset(&server, 0, sizeof(server));
server.sin_family = AF_INET;
server.sin_port = htons(PORT);
memcpy(&server.sin_addr.s_addr, host->h_addr, host->h_length);

// Tentative de connexion
if (connect(sock, (struct sockaddr *)&server, sizeof(server)) < 0) {
perror('Erreur de connexion');
close(sock);
return 0;
}

// Fermeture du socket
close(sock);
return 1;
}

int main() {
if (estConnecteInternet()) {
printf('L\'ordinateur est connecté à Internet\n');
} else {
printf('L\'ordinateur n\'est pas connecté à Internet\n');
}
return 0;
}

Compiler

gcc -o httpcheck httpcheck.c

Exécuter

./httpcheck


↑ Haut de page