入侵oracle数据库的一些技巧(13)


        countline++;

    rewind(fd);//指针返回到文件起始处

    return countline;

}

BOOL IsPortOpen(char * address, int port)
{
    int recv = 1;
    WSADATA wsadata;
    int fd;
    struct sockaddr_in clientaddress;
    struct hostent * host1;
    BOOL Result = FALSE;
    struct timeval timer4;
    fd_set writefd; //检查数据是否可写
    ULONG value = 1;
    //初使化winsock版本1.1:
    recv = WSAStartup(MAKEWORD(1,1), &wsadata);

    if(recv != 0) 
    {
        printf("init failed %d.\n",WSAGetLastError());
        return(0);
    }

    if ( LOBYTE( wsadata.wVersion ) != 1 || 
        HIBYTE( wsadata.wVersion ) != 1 ) { 
    /* Tell the user that we couldn't find a useable */ 
    /* winsock.dll. */ 
        WSACleanup(); 
        return(0); 
    }
  //创建socket套接字连接:
    fd = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
    if(fd < 0)
    {

          printf("[-] Create socket error %d. \n",WSAGetLastError());
          return(0);
    }
    //将套接字fd设为非阻塞模式的方法:
    ioctlsocket(fd,FIONBIO,&value);

    if (!(host1 = gethostbyname(address))){
        printf("[-] Gethostbyname(%s) error %d.\n",address,WSAGetLastError());
        return(0);
    }

    memset(&clientaddress, 0, sizeof(struct sockaddr));
    clientaddress.sin_family =AF_INET;//Ipv4地址族
    clientaddress.sin_port = htons((unsigned short)port);

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1490.html