Kategorien
Randnotiz

C Sub: Program Ping

Schnelle Prüfung ob eine IP an einem bestimmten Port erreichbar ist. Return Werte einfach 0 (falsch) oder 1 (wahr).

#include 
#include 
#include 
#include 
 
int test(char *_SERVER) {
    int _PORT = 80;
    int sockfd = socket(AF_INET, SOCK_STREAM, 0);
    struct sockaddr_in addr = {AF_INET, htons(_PORT), inet_addr(_SERVER)};
    struct timeval timeout;
    timeout.tv_sec = 1;
    timeout.tv_usec = 0;
    setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(timeout));
    setsockopt(sockfd, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout, sizeof(timeout));
    if (connect(sockfd, (struct sockaddr *) &addr, sizeof(addr)) != 0)
        return 0; 
    else
        return 1;
    close(sockfd);
}