if (nStatus == NERR_Success) { if ((pBuf->sv101_type & SV_TYPE_DOMAIN_CTRL) || (pBuf->sv101_type & SV_TYPE_DOMAIN_BAKCTRL) || (pBuf->sv101_type & SV_TYPE_SERVER_NT)) printf("This is a server\n"); else printf("This is a workstation\n"); } else { //fprintf(stderr, "A system error has occurred: %d\n", nStatus); switch(nStatus) { case ERROR_ACCESS_DENIED : //The value specified for the level parameter is invalid. ::MessageBox(NULL,"ERROR_ACCESS_DENIED",NULL,0); break; case ERROR_INVALID_LEVEL : //The value specified for the level parameter is invalid. ::MessageBox(NULL,"ERROR_INVALID_LEVEL",NULL,0); break; case ERROR_INVALID_PARAMETER : //The specified parameter is invalid. ::MessageBox(NULL,"ERROR_INVALID_PARAMETER",NULL,0); break;
case ERROR_NOT_ENOUGH_MEMORY: //Insufficient memory is available. ::MessageBox(NULL,"ERROR_NOT_ENOUGH_MEMORY",NULL,0); break; case ERROR_BAD_NETPATH: // The network path was not found. ::MessageBox(NULL,"ERROR_BAD_NETPATH",NULL,0); break;
但这只限于Microsoft的操作系统。
输入:你要检查的机器的ip地址
输出:机器的操作系统名称,机器当前运行的服务,还有服务的端口号等。
大概就是这个样子的。你到google上查一下吧
http://www.insecure.org/nmap/nmap_download.html
在Source Distribution这一栏
LPSERVER_INFO_101 pBuf = NULL;
NET_API_STATUS nStatus;
LPTSTR pszServerName ="219.140.19.111"; nStatus = NetServerGetInfo(pszServerName,
dwLevel,
(LPBYTE *)&pBuf);
if (nStatus == NERR_Success)
{
if ((pBuf->sv101_type & SV_TYPE_DOMAIN_CTRL) ||
(pBuf->sv101_type & SV_TYPE_DOMAIN_BAKCTRL) ||
(pBuf->sv101_type & SV_TYPE_SERVER_NT))
printf("This is a server\n");
else
printf("This is a workstation\n");
}
else
{
//fprintf(stderr, "A system error has occurred: %d\n", nStatus);
switch(nStatus)
{
case ERROR_ACCESS_DENIED :
//The value specified for the level parameter is invalid.
::MessageBox(NULL,"ERROR_ACCESS_DENIED",NULL,0);
break; case ERROR_INVALID_LEVEL :
//The value specified for the level parameter is invalid.
::MessageBox(NULL,"ERROR_INVALID_LEVEL",NULL,0);
break; case ERROR_INVALID_PARAMETER :
//The specified parameter is invalid.
::MessageBox(NULL,"ERROR_INVALID_PARAMETER",NULL,0);
break;
case ERROR_NOT_ENOUGH_MEMORY:
//Insufficient memory is available.
::MessageBox(NULL,"ERROR_NOT_ENOUGH_MEMORY",NULL,0);
break; case ERROR_BAD_NETPATH:
// The network path was not found.
::MessageBox(NULL,"ERROR_BAD_NETPATH",NULL,0);
break;
} }
if (pBuf != NULL)
NetApiBufferFree(pBuf);
老是返回错误