Schnelle Prüfung ob eine IP an einem bestimmten Port erreichbar ist. Return Werte einfach 0 (falsch) oder 1 (wahr).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> 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); } |