J'ai fait un simple programme de scanner de port C sous Linux. L'algorithme principal est try appel connect, s'il renvoie -1, je n'ai pas pu me connecter, sinon j'ai connecté l'hôte. Cela fonctionne très bien dans mon ordinateur, il répertorie mes ports ouverts. Cependant, dans ma maison il y a un autre ordinateur (derrière le même routeur avec le mien) et je donne son adresse IP mais le programme se bloque. J'ai essayé google.com, facebook.com ou tout autre site Web et ils ne répondent même pas à la première demande. Qu'est-ce que je fais mal?Scanneur de port en C++ se bloque
EDIT:
for(port=0; port<=65536; port++)
{
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr = *((struct in_addr *)he->h_addr);
memset(&(addr.sin_zero), '\0', 8);
if (connect(sockfd, (struct sockaddr *)&addr, sizeof(struct sockaddr)) == -1) {
printf("%i closed\n", port);
close(sockfd);
}
else {
printf("%i open\n", port);
close(sockfd);
}
}
Il est presque impossible de dire sans regarder le code, j'ai peur. –
Avez-vous essayé d'attendre 60 secondes? Ou quelle que soit la valeur du délai d'expiration par défaut? –
En outre, 'port <65536'. –