BOOL port_open(unsigned long ip) { SOCKET s; SOCKADDR_IN sin; unsigned long blockcmd=1; timeval t; int i; FD_SET rset; s=socket(AF_INET,SOCK_STREAM,0); if (s==INVALID_SOCKET) return INVALID_SOCKET; sin.sin_family=AF_INET; sin.sin_addr.S_un.S_addr=ip; sin.sin_port=htons(445); sin.sin_port=htons(139); //sin.sin_port=htons(135); ioctlsocket(s,FIONBIO,&blockcmd); connect(s,(LPSOCKADDR)&sin,sizeof(sin)); FD_ZERO(&rset); FD_SET(s,&rset); t.tv_sec=5; t.tv_usec=0; i=select(0,0,&rset,0,&t); closesocket(s); if (i<=0) { return FALSE; } else { return TRUE; } }