У меня проблемы с программированием на C языке. Я скомпилировал программу, которая сканирует открытые порты на IP-адресе, заданном пользователем, и она должна отображаться на экране, когда порт открыт. Проблема в том, что он ничего не печатает! Программа запускается, но на экране ничего не отображается.
#include <stdio.h> // printf(), perror()
#include <sys/types.h> // AF_INET, SOCK_STREAM
#include <sys/socket.h> // socket(), connect()
#include <arpa/inet.h> // htons(), inet_addr()
#include <unistd.h> // close()
int main(int argc, char *argv[])
{
int meusocket;
int conecta;
int port;
int inicio = 0;
int final = 65535;
char * destino;
destino = argv[1];
struct sockaddr_in alvo;
if(argv[1] == "")
{
printf("Informe o IP de acordo com o exemplo: \n");
printf("./portscan 192.168.100.1");
close(meusocket);
return 0;
}else{
for(port=inicio;port<final;port++)
{
meusocket = socket(AF_INET, SOCK_STREAM, 0);
alvo.sin_family = AF_INET;
alvo.sin_port = htons(port);
alvo.sin_addr.s_addr = inet_addr(destino);
conecta = connect(meusocket, (struct sockaddr *)&alvo, sizeof alvo);
if(conecta == 0)
{
printf("Porta %i [ABERTA] \n",port);
close(meusocket);
return 0;
}else{
close(meusocket);
return 0;
}
}
}
}