diff --git a/portscanner.c b/portscanner.c new file mode 100644 index 0000000..084f91a --- /dev/null +++ b/portscanner.c @@ -0,0 +1,89 @@ +/* + Port scanner code in c +*/ +#include "stdio.h" +#include "sys/socket.h" +#include "errno.h" +#include "netdb.h" +#include "string.h" +#include "stdlib.h" + +int main(int argc , char **argv) +{ + struct hostent *host; + int err, i , sock ,start , end; + char hostname[100]; + struct sockaddr_in sa; + + //Get the hostname to scan + printf("Enter hostname or IP : "); + gets(hostname); + + //Get start port number + printf("\nEnter start port number : "); + scanf("%d" , &start); + + //Get end port number + printf("Enter end port number : "); + scanf("%d" , &end); + + //Initialise the sockaddr_in structure + strncpy((char*)&sa , "" , sizeof sa); + sa.sin_family = AF_INET; + + //direct ip address, use it + if(isdigit(hostname[0])) + { + printf("Doing inet_addr..."); + sa.sin_addr.s_addr = inet_addr(hostname); + printf("Done\n"); + } + //Resolve hostname to ip address + else if( (host = gethostbyname(hostname)) != 0) + { + printf("Doing gethostbyname..."); + strncpy((char*)&sa.sin_addr , (char*)host->h_addr , sizeof sa.sin_addr); + printf("Done\n"); + } + else + { + herror(hostname); + exit(2); + } + + //Start the port scan loop + printf("Starting the portscan loop : \n"); + for( i = start ; i <= end ; i++) + { + //Fill in the port number + sa.sin_port = htons(i); + //Create a socket of type internet + sock = socket(AF_INET , SOCK_STREAM , 0); + + //Check whether socket created fine or not + if(sock < 0) + { + perror("\nSocket"); + exit(1); + } + //Connect using that socket and sockaddr structure + err = connect(sock , (struct sockaddr*)&sa , sizeof sa); + + //not connected + if( err < 0 ) + { + //printf("%s %-5d %s\r" , hostname , i, strerror(errno)); + fflush(stdout); + } + //connected + else + { + printf("%-5d open\n", i); + } + close(sock); + } + + printf("\r"); + fflush(stdout); + return(0); +} diff --git a/test.c b/test.c new file mode 100644 index 0000000..9ae1730 --- /dev/null +++ b/test.c @@ -0,0 +1,11 @@ +#include "stdio.h" + +void main(){ + + int a; + printf("Enter a: "); + scanf("%d",a); + printf(a); + + +}