snmp test

// snmp_test.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdlib.h>
//#include <windows.h>
#include <winsock2.h>
#pragma comment(lib, "Ws2_32.lib")

#define  MAXLENT 1000
TCHAR* g_strfilePath;  
TCHAR* g_strIpAddress;  
int g_nTimes = 0;  
int g_nInterval = 0;

void usage()  
{  
	printf("usage: [-f:str] [-i:IP address] [-l:number] [-t:number]\n\n");
	printf("     -f   The file you want to send\n");
	printf("     -x   Witch ip you want to send to\n");
	printf("     -l   The time between two transmission\n");
	printf("     -t   how much times you want to transmit file\n");
	ExitProcess(1);
}  

void ValidateArgs(int argc,TCHAR ** argv)
{
	int i;

	if (argc < 5) {
		usage();
	}
	for (i=1;i<argc;i++)
	{
		if((argv[i][0]=='-')||(argv[i][2]== NULL))
		{
			switch(tolower(argv[i++][1]))
			{
			case 'f':
				if (argv[i]) {
					g_strfilePath = argv[i];
				} else {
					usage();
				}
				break;
			case 'i':
				if (argv[i]) {
					g_strIpAddress = argv[i];
				} else {
					usage();
				}
				break;
			case 'l':
				if (argv[i]) {
					g_nInterval  = _ttoi(argv[i]);
				} else {
					usage();
				}
				break;
			case 't':
				if (argv[i]) {
					g_nTimes = _ttoi(argv[i]);
				} else {
					usage();
				}
				break;
			default:
				usage();
				break;
			}
		} else {
			usage();
			break;
		}
	}
}

int _tmain(int argc, _TCHAR* argv[])  
{  


	SOCKET sock = 0;  
	WORD wVersionRequested = 0;  
	WSADATA wsaData;  
	int nErr = 0;  
	sockaddr_in addrto;   
	HANDLE hFile = NULL;  
	LPOFSTRUCT lpOpstruct = NULL;  	
	DWORD dwMaxLen;  
	DWORD dwLen;    
	char *buf = new char[1000];
	char *ipbuf;
 
	ValidateArgs(argc, argv);
	if (0 == g_nInterval ) {
		g_nInterval = 1000;
	}
	if (0 == g_nTimes) {
		g_nTimes = 1;
	}
	dwMaxLen = MAXLENT;

	hFile = CreateFile(g_strfilePath, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0);

	if(!hFile) {  
		wprintf(L"file not exist!");  
	}  

	if(!ReadFile(hFile, (LPVOID)buf,dwMaxLen, &dwLen, NULL) || dwLen == 0) {  
		wprintf(L" file read failed!");  
	}

	wVersionRequested = MAKEWORD(2,2);  
	nErr = WSAStartup(wVersionRequested, & wsaData);  
	if (0 != nErr) {  
		wprintf(L"Socket 2.2 init failed!");  
		return nErr;  
	}

	if (LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 2 )  
	{  
		WSACleanup();
		CloseHandle(hFile);
		return 0;  
	}  

	sock = socket(  
		AF_INET,           //UDP,TCP, etc   
		SOCK_DGRAM,        //UDP type   
		IPPROTO_UDP        //protocol   
		);  

	if (INVALID_SOCKET == sock ) {  
		wprintf(L"Socket create failed!");
		WSACleanup();
		return 0;  
	}             

	int cCharacters = int(wcslen(g_strIpAddress)+1);
	int cbAnsi = cCharacters*2;
	ipbuf = new char[cbAnsi];

	memset(&addrto,0,sizeof(addrto));  
	WideCharToMultiByte(CP_ACP,0, g_strIpAddress,cCharacters,ipbuf,cbAnsi, NULL, NULL);
	addrto.sin_family = AF_INET;  
	addrto.sin_port = htons(162);
	addrto.sin_addr.s_addr = inet_addr(ipbuf);

	while (g_nTimes--) {
		Sleep(g_nInterval);
		if (sendto(sock, buf, dwLen, 0, (sockaddr*)&addrto, sizeof(addrto)) == SOCKET_ERROR) {
			nErr = WSAGetLastError();
			wprintf(L"WSAGetLastError = %d ", nErr);
			break;
		}
	}

	closesocket(sock);
	WSACleanup();
	CloseHandle(hFile);
	return 0;  
}  


 

### 回答1: snmptest是一个由两部分组成的字符串:SNMPtestSNMP是Simple Network Management Protocol(简单网络管理协议)的缩写,它是一种用于管理和监控网络设备的协议。通过SNMP,网络管理员可以监控网络设备的运行状态,收集设备的信息,以及远程配置设备。SNMP使用了一个统一的管理信息库(Management Information Base,MIB)来存储和描述被管理设备的信息。 而test是英文测试、试验的意思,可能在这个字符串中表示对SNMP进行测试的意图。测试SNMP的目的可能是为了确认网络设备是否正常运行,以及是否可以使用SNMP协议来对其进行管理和监控。 对SNMP进行测试可以包括以下内容:首先,测试网络设备是否支持SNMP协议,并确保设备的SNMP功能已启用。其次,可以使用SNMP管理系统或相关工具向设备发送SNMP请求,例如获取设备的系统信息、检索设备的接口状态等。通过对这些请求的回应,可以判断SNMP功能是否正常工作。同时,还可以测试SNMP的安全性,如测试设备是否能够正确地响应SNMP的访问权限控制。 综上所述,snmptest字符串可能代表对SNMP进行测试的意图,通过测试SNMP功能和安全性,以确保网络设备正常运行,并能够通过SNMP协议进行管理和监控。 ### 回答2: snmptest是一个字符串,它可能代表着SNMP测试的相关内容。SNMP是简单网络管理协议(Simple Network Management Protocol)的缩写,是一种用于网络设备管理的协议。 SNMP用于管理和监控网络设备,通过在网络中的代理之间进行信息传递,为网络管理员提供了对网络设备的集中管理和监控能力。SNMP测试即通过使用SNMP协议来对网络设备进行测试和验证。 SNMP测试可以用于检查网络设备的健康状况、配置正确性以及运行状态。它可以测试设备的响应时间、设备是否能够正确地接收和处理SNMP请求等。通过进行SNMP测试,管理员可以及时发现和解决设备出现的问题,确保网络的正常运行。 SNMP测试通常包括以下步骤:首先是设备的连接和配置,即将需要测试的设备连接到网络,并正确配置设备的SNMP代理。接下来是发送SNMP请求,通过向设备发送标准的SNMP请求,测试设备是否能够正确地响应。最后是分析和记录测试结果,将设备的响应时间、请求成功率等数据进行分析,以便管理员根据测试结果进行后续的网络管理和优化工作。 总之,SNMP测试是一种常用的网络设备管理和监控方法,它通过使用SNMP协议来对网络设备进行测试和验证,帮助管理员发现和解决设备问题,确保网络的正常运行。 ### 回答3: snmptest是一个字符串,它可能代表某个测试的名称或标识符。根据字符串的命名规则和语境,可以推测snmptestSNMP(Simple Network Management Protocol,简单网络管理协议)相关。 SNMP是一种常用于网络管理的协议,用于监控和管理网络设备,如路由器、交换机和服务器等。通过SNMP,管理者可以获取设备的性能指标、配置信息、错误报告等。snmptest这个字符串可能是指关于SNMP的某个测试或实验。 可能的解释之一是,snmptest是一种用于测试SNMP可用性或功能的工具或软件。它可以用于检测、模拟或探测SNMP代理是否正常工作,或者用于验证SNMP的配置和设置是否正确。通过对snmptest进行执行,可以得出关于SNMP实现的可靠性和准确性的评估结果。 另外,snmptest也可能是一种编写的测试脚本或程序。在此情况下,snmptest可能被用于自动化地执行SNMP测试,并且可以自动收集并分析测试结果,以便快速定位和解决问题。 总之,由于缺乏更多的背景信息,对于snmptest字符串的具体含义无法确定,但可以推测它与SNMP相关,可能代表某种测试工具、测试脚本或测试名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值