ANdreicj Posted January 4, 2010 Report Posted January 4, 2010 #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> int main(int argc, char **argv ){ int sc; int i; char IP[100];printf("Provide IP for scann : ");[color=violet] /* se cere IP-ul care va fi scanat ( de porturi ) , incercati IP-ul de pe computerul local */ [/color]scanf("%s",&IP);printf(" n Scanning nn"); for(i=0;i<65535;++i) [color=violet]/* o structura repetitiva , de la 0-65000 , se conecteaza pe rand la fiecare dintre aceste porturi , pentru a le verifica starea : deschis / inchis */ [/color] { struct sockaddr_in server; sc = socket(AF_INET, SOCK_STREAM,0); [color=violet]/* se declara socketul client */[/color] server.sin_family = AF_INET; [color=violet]/* familia acestuia , aici AF_INET , pentru comunicarea pe Internet : TCP/IP*/[/color] server.sin_addr.s_addr = inet_addr(IP); [color=violet]/* IP-ul care se doreste a fi scanat , la care se va face conexiunea , pe fiecare port in parte */[/color] server.sin_port = htons(i);[color=violet] /* portul care va fi scanat , repetitiv de la 0-65000 */[/color] if( connect(sc, (struct sockaddr *)&server, sizeof(server)) < 0 ) [color=violet]/* ne conectam la fiecare port in parte , [color=red] connect () , acesta returnand o valoare negativa daca nu e deschis si pozitiva daca este */[/color] { } else{ printf(" : Open " ); [color=violet]/* Daca valoarea nu e negativa , portul e deschis si se afiseaza corespunzator */[/color] printf(" %d : n",i); } }close(sc); [color=violet]/* se inchide socketul client */[/color] return 0;[color=violet] /* se inchide functia main , returnandu-se 0 */[/color]} Quote