Ниже предлагается весьма быстрый сканер открытых TCP-портов.
/*
* TCP-ports scaner. Build 1
* Copyright (c) 1999 Andi Peredri
* Distributed under GPL.
* Please send any comments, bug reports, and suggestions to
* root@tomchuk.niiit.kiev.ua
* Compiling: gcc -o scanport scanport.c
*/
#include <netinet/in.h>
int main(int argc, char *argv[]){
int sock;
unsigned short int port;
struct sockaddr_in addr;
if(argc!=2){
puts("Usage: scanport host\n");
return 1;}
inet_aton(argv[1],&(addr.sin_addr));
for(port=0;port<=65534;port++){
sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(sock<0){
perror("Socket");
return 1;}
addr.sin_port=(port>>8)+(port<<8);
addr.sin_family=AF_INET;
if(connect(sock,(struct sockaddr *)&addr,sizeof(addr))){
close(sock);
continue;}
printf("Detected port: %5d\n",port);
if(shutdown(sock,2)<0){
perror("Shutdown");
return 1;}
close(sock);}
puts("Done.\n");
return 0;
}
Ответ на:
комментарий
от ANDI
23 ноября 2000 г.
4 октября 2001 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Не понимаю почему не работает (2013)
- Форум Сокеты передача сообщений между компьютерами. Помогите найти ошибку. (2012)
- Форум [C] Получить данные на TCP сокет (2008)
- Форум Сокеты в Си (продолжене) (2005)
- Форум C++, OpenSSL. Как соединиться с сервером через прокси? (2015)
- Форум Таймаут для connect() (2009)
- Форум Подсчет числа возможных открытых TCP-портов (2011)
- Форум Многопользовательский чат (2013)
- Форум Подключиться к unix-сокету через bash (2020)
- Форум Клиент, сервер и их правильная работа. (2005)