Я пытаюсь скомпилировать следующий код:
#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;
for(argv[1] == "";)
{
printf("Informe o IP de acordo com o exemplo: \n");
printf("./portscan 192.168.100.1");
close(meusocket);
}
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);
}else{
close(meusocket);
}
}
}
Но я продолжаю получать следующую ошибку:
portscan.c: In function ‘main’:
portscan.c:20:20: error: expected expression before ‘)’ token
20 | for(argv[1] == "";)enter code here'''
| ^
Я новичок в программировании и понятия не имею как это исправить. Я пытался поставить for(argv[1] == 0;)
, но тоже не сработало.
Он также не печатает результаты сканирования, когда порт переменной возвращает 0.
Может кто-нибудь мне помочь?