⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wetctl.c

📁 VIA VT6655 x86下的Linux Source Code
💻 C
📖 第 1 页 / 共 3 页
字号:
        };
		if(pList->sBSSIDList[ii].bWEPOn == TRUE) {
		    printf("yes ");
		}
		else {
		    printf("no  ");
        };        
		printf("%04d  ", (int)pList->sBSSIDList[ii].uRSSI);
		memcpy(buf, pList->sBSSIDList[ii].abySSID, SSID_MAXLEN +1);
		printf("%s\n", buf);
	}
}

/*+
 *
 * Description:
 *
 *
 *	Called when the user has requested the 'nodes' command at the
 *	command line. 
 *
 * Parameters:
 *  In:
 *      skfd, argc, argv
 *  Out:
 *      none
 *
 * Return Value: '0' if success
 *
-*/


int s_cmdGetNodeList(int skfd, int argc, char **argv)
{
	int					result;
	SCmdRequest	        sReq;
	SNodeList		    sList;
    PSNodeList          pList;

	result = 0;
	memset(&sList, 0, sizeof(SNodeList));	
	strcpy((char *)sReq.name, argv[1]);
	sReq.wResult = 0;
	sReq.data = &sList;
	sReq.wCmdCode = WLAN_CMD_GET_NODE_CNT;
	result = ioctl( skfd, IOCTL_CMD_SET, &sReq);

	if (result || sReq.wResult) {
		printf( "%s: failed in get node list command.\n", AppName);
		result = 1;
	}
	else {
		pList = malloc( sizeof(SNodeList) + (sList.uItem * sizeof(SNodeItem)));
		pList->uItem = sList.uItem;
		sReq.wResult = 0;
		sReq.data = pList;
		sReq.wCmdCode = WLAN_CMD_GET_NODE_LIST;
		result = ioctl( skfd, IOCTL_CMD_SET, &sReq);
		if (result || sReq.wResult) {
			printf( "%s: failed get node list command\n", AppName);
			result = 1;
		}
		else {
			vShowNodeList(pList);
		}
	}


	return result;
}


/*+
 *
 * Description:
 *
 *
 *	Show stations list
 *
 * Parameters:
 *  In:
 *      pList
 *  Out:
 *      none
 *
 * Return Value: none
 *
-*/

VOID vShowNodeList(PSNodeList pList)
{
	int 			    ii;
	BYTE 			    buf[80];
	
    printf("Associated Nodes Count = %d\n", (int)(pList->uItem -1));	
    printf("AID MAC                RATE AGE  QUE FG  PW  RATO  KEY LEN\n");
	for (ii = 0; ii < pList->uItem; ii++) {
		printf("%02d  ", pList->sNodeList[ii].wAID);
		vAddrToStr(pList->sNodeList[ii].abyMACAddr, buf);
		printf("%s  ", buf);
		printf("%02d  ", pList->sNodeList[ii].wTxDataRate);
		printf("%04d  ", pList->sNodeList[ii].wInActiveCount);
		printf("%02d  ", pList->sNodeList[ii].wEnQueueCnt);
		printf("%02x  ", pList->sNodeList[ii].wFlags);
		if(pList->sNodeList[ii].bPWBitOn == TRUE) {
		    printf("yes ");
		}
		else {
		    printf("no  ");
        };
		printf("%04d  ", pList->sNodeList[ii].wFailureRatio);
		printf("%02d  ", pList->sNodeList[ii].byKeyIndex);
		printf("%04d  ", pList->sNodeList[ii].wWepKeyLength);
		printf("\n");
		vWEPToStr(pList->sNodeList[ii].abyWepKey, buf);		
		printf("KEY = %s \n", buf);
	}
}

/*+
 *
 * Description:
 *
 *  Called when the user set the 'link' command at the
 *	command line to get link status
 *
 * Parameters:
 *  In:
 *      skfd, argc, argv
 *  Out:
 *      none
 *
 * Return Value: '0' if success
 *
-*/

int s_cmdGetLink(int skfd, int argc, char **argv)
{
	int					result;
	SCmdRequest	        sReq;
	SCmdLinkStatus	    sLink;
	BYTE 			    buf[SSID_MAXLEN + 1];


	result = 0;
	strcpy((char *)sReq.name, argv[1]);
	sReq.wResult = 0;
	sReq.data = &sLink;
	sReq.wCmdCode = WLAN_CMD_GET_LINK;
	result = ioctl(skfd, IOCTL_CMD_SET, &sReq);
	if (sReq.wResult ) {
		printf( "%s: failed in link command.\n", AppName);
	}
	else {
        if (sLink.bLink == TRUE) {
		    memcpy(buf, sLink.abySSID, SSID_MAXLEN + 1);
            if (sLink.wBSSType == ADHOC) {
                if (sLink.byState == ADHOC_STARTED)
                    printf("Adhoc Starting, SSID = '%s'\n", buf);
                else if (sLink.byState == ADHOC_JOINTED)
                    printf("Adhoc Link with, SSID = '%s'\n", buf);
            }
            else {
                if (sLink.wBSSType == INFRA)
                    printf("Link with AP, SSID = '%s'\n", buf);
            }  
            printf("Channel = %02d", (int)sLink.uChannel);
            vAddrToStr(sLink.abyBSSID, buf);
            printf(", Data Rate = ");
            switch(sLink.uLinkRate) {
                case RATE_1M:
                    printf("1Mbps"); 
                    break;
                case RATE_2M:
                    printf("2Mbps");
                    break;
                case RATE_5M:
                    printf("5.5Mbps");
                    break;
                case RATE_11M:
                    printf("11Mbps");
                    break;
                case RATE_6M:
                    printf("6Mbps");
                    break;          
                case RATE_9M:
                    printf("9Mbps");
                    break;
                case RATE_12M:
                    printf("12Mbps");
                    break;    
                case RATE_18M:
                    printf("18Mbps");
                    break;
                case RATE_24M:
                    printf("24Mbps");
                    break;
                case RATE_36M:
                    printf("36Mbps");
                    break;
                case RATE_48M:
                    printf("48Mbps");
                    break;
                case RATE_54M:
                    printf("54Mbps");
                    break;   
                default:
                    printf("54Mbps");                                      
            }
            printf("\n");            
            printf("BSSID = %s\n", buf);

        } 
        else {
            printf("Link fail, disconnected !\n");
        }                   
    }

	return result;
}


/*+
 *
 * Description:
 *
 *	Called when the user has requested the 'mib' command at the
 *	command line. 
 *
 * Parameters:
 *  In:
 *      skfd, argc, argv
 *  Out:
 *      none
 *
 * Return Value: '0' if success
 *
-*/

int s_cmdGetMIB(int skfd, int argc, char **argv)
{
	int					result;
	SCmdRequest	        sReq;
	SDot11MIBCount	    sMIB;


	result = 0;
	strcpy((char *)sReq.name, argv[1]);
	sReq.wResult = 0;
	sReq.data = &sMIB;
	sReq.wCmdCode = WLAN_CMD_GET_MIB;
	
	result = ioctl( skfd, IOCTL_CMD_SET, &sReq);
	
	if (result || sReq.wResult) {
		printf( "%s: failed in get mib command.\n", AppName);
		result = 1;
	}
	else {
  	    printf("TxFragmentCount =%12d  ", (INT)sMIB.TransmittedFragmentCount);
  	    printf("MulticastTxCount=%12d\n", (INT)sMIB.MulticastTransmittedFrameCount);
  	    printf("FailedCount     =%12d  ", (INT)sMIB.FailedCount);
  	    printf("RetryCount      =%12d\n", (INT)sMIB.RetryCount);
  	    printf("MultipleRetry   =%12d  ", (INT)sMIB.MultipleRetryCount);
  	    printf("RTSSuccessCount =%12d\n", (INT)sMIB.RTSSuccessCount);
  	    printf("RTSFailureCount =%12d  ", (INT)sMIB.RTSFailureCount);
  	    printf("ACKFailureCount =%12d\n", (INT)sMIB.ACKFailureCount);
  	    printf("DuplicateCount  =%12d  ", (INT)sMIB.FrameDuplicateCount);
  	    printf("RxFragmentCount =%12d\n", (INT)sMIB.ReceivedFragmentCount);
  	    printf("MulticastRxCount=%12d  ", (INT)sMIB.MulticastReceivedFrameCount);
  	    printf("FCSErrorCount   =%12d\n",(INT)sMIB.FCSErrorCount);
    }

	return result;
}



/*+
 *
 * Description:
 *
 *	Called when the user has requested the 'stat'(statistics)command at the
 *	command line. 
 *
 * Parameters:
 *  In:
 *      skfd, argc, argv
 *  Out:
 *      none
 *
 * Return Value: '0' if success
 *
-*/


int s_cmdGetSTAT(int skfd, int argc, char **argv)
{
	int					result;
	SCmdRequest	        sReq;
	SStatMIBCount	    sSTAT;


	result = 0;
	strcpy((char *)sReq.name, argv[1]);
	sReq.wResult = 0;
	sReq.data = &sSTAT;
	sReq.wCmdCode = WLAN_CMD_GET_STAT;
	result = ioctl( skfd, IOCTL_CMD_SET, &sReq);
	if (result || sReq.wResult) {
		printf("%s: failed in get stat command.\n", AppName);
		result = 1;
	}
	else {
  	    printf("IsrTx0OK      =%12d  ", (INT)sSTAT.dwIsrTx0OK);
  	    printf("IsrTx1OK      =%12d\n", (INT)sSTAT.dwIsrTx1OK);
  	    printf("IsrBeaconTxOK =%12d  ", (INT)sSTAT.dwIsrBeaconTxOK);
  	    printf("IsrRxOK       =%12d\n", (INT)sSTAT.dwIsrRxOK);
  	    printf("IsrTBTTInt    =%12d  ", (INT)sSTAT.dwIsrTBTTInt);
  	    printf("IsrSTIMERInt  =%12d\n", (INT)sSTAT.dwIsrSTIMERInt);
  	    printf("IsrUnrecovErr =%12d  ", (INT)sSTAT.dwIsrUnrecoverableError);
  	    printf("IsrSoftInt    =%12d\n", (INT)sSTAT.dwIsrSoftInterrupt);
  	    printf("IsrRxNoBuf    =%12d  ", (INT)sSTAT.dwIsrRxNoBuf);
  	    printf("IsrUnknown    =%12d\n", (INT)sSTAT.dwIsrUnknown);

  	    printf("RsrFrmAlgnErr =%12d  ", (INT)sSTAT.dwRsrFrmAlgnErr);
  	    printf("RsrErr        =%12d\n", (INT)sSTAT.dwRsrErr);
  	    printf("RsrCRCErr     =%12d  ", (INT)sSTAT.dwRsrCRCErr);
  	    printf("RsrCRCOk      =%12d\n", (INT)sSTAT.dwRsrCRCOk);  
  	    printf("RsrBSSIDOk    =%12d  ", (INT)sSTAT.dwRsrBSSIDOk);
  	    printf("RsrADDROk     =%12d\n", (INT)sSTAT.dwRsrADDROk);  
  	    printf("RsrICVOk      =%12d  ", (INT)sSTAT.dwRsrICVOk);
  	    printf("RsrShortPre   =%12d\n", (INT)sSTAT.dwNewRsrShortPreamble);
  	    printf("RsrLong       =%12d  ", (INT)sSTAT.dwRsrLong);
  	    printf("RsrRunt       =%12d\n", (INT)sSTAT.dwRsrRunt);
  	    printf("RsrRxControl  =%12d  ", (INT)sSTAT.dwRsrRxControl);
  	    printf("RsrRxData     =%12d\n", (INT)sSTAT.dwRsrRxData);
  	    printf("RsrRxManage   =%12d  ", (INT)sSTAT.dwRsrRxManage);
  	    printf("RsrRxPacket   =%12d\n", (INT)sSTAT.dwRsrRxPacket);
  	    printf("RsrRxOctet    =%12d  ", (INT)sSTAT.dwRsrRxOctet);
  	    printf("RsrBroadcast  =%12d\n", (INT)sSTAT.dwRsrBroadcast);
  	    printf("RsrMulticast  =%12d  ", (INT)sSTAT.dwRsrMulticast);
  	    printf("RsrDirected   =%12d\n", (INT)sSTAT.dwRsrDirected);
  	    printf("RsrOK         =%12d\n\n", (INT)sSTAT.ullRsrOK);
  	    
  	    printf("RxBroadcstBytes=%12d  ", (INT)sSTAT.ullRxBroadcastBytes);
  	    printf("RxMulticstBytes=%12d\n", (INT)sSTAT.ullRxMulticastBytes);
  	    printf("RxDirectedBytes=%12d  ", (INT)sSTAT.ullRxDirectedBytes);
  	    printf("RxBroadcstFrame=%12d\n", (INT)sSTAT.ullRxBroadcastFrames);
  	    printf("RxMulticstFrame=%12d  ", (INT)sSTAT.ullRxMulticastFrames);
  	    printf("RxDirectedFrame=%12d\n", (INT)sSTAT.ullRxDirectedFrames);
  	    

  	    printf("RxLen64        =%12d  ", (INT)sSTAT.dwRsrRxFrmLen64);
  	    printf("RxLen65_127    =%12d\n", (INT)sSTAT.dwRsrRxFrmLen65_127);
  	    printf("RxLen128_255   =%12d  ", (INT)sSTAT.dwRsrRxFrmLen128_255);
  	    printf("RxLen256_511   =%12d\n", (INT)sSTAT.dwRsrRxFrmLen256_511);
  	    printf("RxLen512_1023  =%12d  ", (INT)sSTAT.dwRsrRxFrmLen512_1023);
  	    printf("RxLen1024_1518 =%12d\n", (INT)sSTAT.dwRsrRxFrmLen1024_1518);
  	    printf("RsrRxOctet     =%12d  ", (INT)sSTAT.dwRsrRxOctet);
  	    printf("RsrBroadcast   =%12d\n", (INT)sSTAT.dwRsrBroadcast);
  	    printf("RsrMulticast   =%12d  ", (INT)sSTAT.dwRsrMulticast);
  	    printf("RsrDirected    =%12d\n", (INT)sSTAT.dwRsrDirected);
  	    printf("RsrOK          =%12d  ", (INT)sSTAT.ullRsrOK);
  	    printf("RxBroadcstByte =%12d\n", (INT)sSTAT.ullRxBroadcastBytes);
  	    printf("RsrRxFragment  =%12d\n\n", (INT)sSTAT.dwRsrRxFragment);  	    

  	    printf("TsrTotalRetry  =%12d  ", (INT)sSTAT.dwTsrTotalRetry[1]);
  	    printf("TsrOnceRetry   =%12d\n", (INT)sSTAT.dwTsrOnceRetry[1]);
  	    printf("TsrMoreOneRetry=%12d  ", (INT)sSTAT.dwTsrMoreThanOnceRetry[1]);
  	    printf("TsrRetry       =%12d\n", (INT)sSTAT.dwTsrRetry[1]);
  	    printf("TsrACKData     =%12d  ", (INT)sSTAT.dwTsrACKData[1]);
  	    printf("TsrErr         =%12d\n", (INT)sSTAT.dwTsrErr[1]);
  	    printf("AllTsrOK       =%12d  ", (INT)sSTAT.dwAllTsrOK[1]);
  	    printf("TsrRetryTimeout=%12d\n", (INT)sSTAT.dwTsrRetryTimeout[1]);
  	    printf("TsrTxTimeout   =%12d  ", (INT)sSTAT.dwTsrTransmitTimeout[1]);
  	    printf("TsrTxPacket    =%12d\n", (INT)sSTAT.dwTsrTxPacket[1]);
  	    printf("TsrTxOctet     =%12d  ", (INT)sSTAT.dwTsrTxOctet[1]);
  	    printf("TsrBroadcast   =%12d\n", (INT)sSTAT.dwTsrBroadcast[1]);
  	    printf("TsrMulticast   =%12d  ", (INT)sSTAT.dwTsrMulticast[1]);
  	    printf("TsrDirected    =%12d\n", (INT)sSTAT.dwTsrDirected[1]);
/*  	    
  	    printf("CntRxDataErr   =%12d  ", (INT)sSTAT.dwCntRxDataErr);
  	    printf("CntDecryptErr  =%12d\n", (INT)sSTAT.dwCntDecryptErr);
  	    printf("CntRxICVErr    =%12d  ", (INT)sSTAT.dwCntRxICVErr);
  	    printf("RxErrorDesc    =%12d\n", (INT)sSTAT.idxRxErrorDesc);
*/  	    
  	    
    }            

	return result;
}

/*+
 *
 * Description:
 *
 *  This function displays usages of the wetctl utility.
 *
 *
 * Parameters:
 *  In:
 *      void
 *  Out:
 *      none
 *
 * Return Value: none
 *
-*/

VOID vCmdUsage(void)
{
	printf("\nUtility for Solomon-A/B/G wireless cards: %s Version %s\n", AppName, VERSION);
	printf("Usage: %s interface command\n\n", AppName);
	printf("   where \"interface\" is the name of a network interface\n");
	printf("   such as eth0 or eth1.. Running 'ifconfig' will list all\n");
	printf("   network interfaces.\n\n");
	printf("Example: %s eth0 link\n\n", AppName);	
	printf("Command List:               \n");	
	printf("   scan : scan all channels to collect available BSS(AP)\n");
	printf("   list : show all BSS(AP) list\n");
	printf("   link : show link status\n");	
	printf("   mib  : show 802.11 mib counters\n");
//	printf("   stop : turn off radio\n");
//	printf("   stat : show statistics\n");
//	printf("   nodes: show station nodes\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -