From 2497c1392b81e093f4de2541a98746aebd449a7f Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Wed, 26 Sep 2012 15:04:18 +0200 Subject: Initial commit --- abuse.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 abuse.c (limited to 'abuse.c') diff --git a/abuse.c b/abuse.c new file mode 100644 index 0000000..040fb5e --- /dev/null +++ b/abuse.c @@ -0,0 +1,57 @@ +#include +#include +#include +#include +#include +#include + +#define host "192.168.2.3" +#define port 8888 + +int f(struct in_addr *saddr, const char *data, const size_t data_len) { + int sockfd; + struct sockaddr_in addr; + sockfd = socket(AF_INET, SOCK_STREAM, 0); + if (sockfd < -1) { + perror("socket"); + return 1; + } + memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_port = htons(port); + addr.sin_addr = *saddr; + if (connect(sockfd, (struct sockaddr *)&addr, sizeof(addr))) { + perror("connect"); + return 1; + } + write(sockfd, data, data_len); + close(sockfd); + return 0; +} +int main(int argc, char **argv) { + struct in_addr saddr; + const char *data = "GET / HTTP/1.0\r\n\r\n"; + const size_t data_len = strlen(data); + if (argc != 2) { + fprintf(stderr, "Usage: %s count\n", *argv); + return 1; + } + if (!inet_aton(host, &saddr)) { + perror("inet_aton"); + return 1; + } + int count = atoi(argv[1]); + const char dot = '.'; + unsigned fails; + while (--count >= 0) { + if (!(count % 10)) { + write(STDOUT_FILENO, &dot, sizeof(dot)); + } + if (f(&saddr, data, data_len)) { + if (++fails > 10) break; + } else + fails /= 2; + } + putchar('\n'); + return 0; +} -- cgit v1.2.1