Add some files
This commit is contained in:
parent
48924bb708
commit
c5fea1d496
89
portscanner.c
Normal file
89
portscanner.c
Normal file
@ -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);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user