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