C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 PortScanner / Статьи. / C++

Пример простого сканера портов для запуска сканирования надо запустить программу с ключем (напр из камандной строки) который и должен быть IP адресом сканируемого компьютера например: portscan.exe 127.0.0.1 для поиска открытых портов программв пробует подключиться к портам начиная с значения переменной cnt и заканчивая значением ports (1...65535)
#include <iostream.h>
#include <stdio.h>
#include <winsock2.h>
#include <stdlib.h>
int cnt = 1, ports=65535;//65535
int main(int argc, char *argv[])
{
 int sock;
 char *ipadres="";
 printf("simple PORT SCANNER");


  if(argc<2)
  {
printf("\nRun programm with IP key !!!");
return -1;
  }else{
	  strcpy(ipadres,argv[1]);}

  printf("\n\a ip - %s \n               SCANNING...", ipadres);

 WORD wVersionRequested;
 WSADATA wsaData;
 int err;
 wVersionRequested = MAKEWORD( 2, 2 );
 err = WSAStartup( wVersionRequested, &wsaData );
 if ( err != 0 ) {
 	printf("\n\aCould not find WinSock DLL");
	getchar();
    return -1;
 }

  struct sockaddr_in addr;
  memset(&addr,0,sizeof(addr));
  addr.sin_family = AF_INET;
  unsigned long s_adr = inet_addr(ipadres);
  if (s_adr == INADDR_NONE)
        {
          WSACleanup();
		  getchar();
          return -1;
        }
  addr.sin_addr.s_addr = s_adr;

 sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

 if (sock == INVALID_SOCKET )
 {
  err = WSAGetLastError();
  printf("SOCKET ERROR, ERROR NUM: %d",err);
  getchar();
  WSACleanup();
  return -1;
 }

 for(cnt=cnt; cnt <= ports; cnt++)
 {
 	addr.sin_port = htons(cnt);
   if(connect(sock, (struct sockaddr*)&addr, sizeof(addr)) == 0)
   {
    printf("\n\aconnected to %d -PORT OPEN\n\a",cnt);
   }else{
	 //printf("\n%d -PORT CLOSED\n",cnt);

   }
 }
  closesocket(sock);
  WSACleanup();
  printf("\n\a SCANNED %d OK !!!",ports);
  getchar();
  return 0;
 }