• [linux c]单线程tcp port scan


     1 #include <sys/socket.h>
     2 #include <sys/types.h>
     3 #include <unistd.h>
     4 #include <stdio.h>
     5 #include <stdlib.h>
     6 #include <string.h>
     7 #include <netdb.h>
     8 
     9 int main(int argc,char *argv[])
    10 {
    11     int tar_socket=socket(AF_INET,SOCK_STREAM,0);
    12     struct sockaddr_in tar_sockaddr;
    13     int taraddr_len=sizeof(tar_sockaddr);
    14     int port;
    15     struct servent *tar_serv;
    16     bzero(&tar_sockaddr,taraddr_len);
    17     if(4!=argc)
    18     {
    19         printf("Usage:%s ip startport endport\n",argv[0]);
    20         exit(1);
    21     }
    22     tar_sockaddr.sin_family=AF_INET;
    23     tar_sockaddr.sin_addr.s_addr=inet_addr(argv[1]);
    24     for(port=atoi(argv[2]);port<=atoi(argv[3]);port++)
    25     {
    26         tar_sockaddr.sin_port=htons(port);
    27         if(!connect(tar_socket,(struct sockaddr*)&tar_sockaddr,taraddr_len))/*如果连接成功*/
    28         {
    29             tar_serv=getservbyport(htons(port),NULL);/*取得端口对应服务信息*/
    30             printf("port: %d  serv: %s   open!\n",port,tar_serv->s_name);
    31         }
    32         else/*如果连接失败*/
    33         {
    34             printf("port: %d  close!\n",port);
    35         }
    36     }
    37     close(tar_socket);
    38     return 0;
    39 }
  • 相关阅读:
    C
    B
    D
    I
    B
    E
    B
    L
    H
    bzoj3276磁力 两种要求下的最大值:分块or线段树+拓扑
  • 原文地址:https://www.cnblogs.com/co1d7urt/p/2722931.html
Copyright © 2020-2023  润新知