portscan. c: 20: 20: ошибка: ожидаемое выражение до маркера ')' - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь скомпилировать следующий код:

#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.

Может кто-нибудь мне помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...