Recent Changes - Search:

Accueil

OpenSSL

SyncML

Apache Portable Runtime

Libxml2

Net-snmp

CUrl

Boost

Perl

ZLib

Samba

VPN

Serveurs de messagerie

edit

Net-snmp/Net-snmp-sample

Net-snmp.Net-snmp-sample History

Hide minor edits - Show changes to markup

June 23, 2006, at 03:08 PM by 194.2.239.195 -
Changed lines 1-3 from:

un exemple minimal faisant une requête snmp vers un équipement Radware

to:

un exemple minimal de requête SNMPv3 vers un équipement Radware

June 23, 2006, at 03:08 PM by 194.2.239.195 -
Added lines 1-133:

un exemple minimal faisant une requête snmp vers un équipement Radware

(:source lang=C :)

int main(int argc, char* argv[]) {

	netsnmp_session session, *ss;
	netsnmp_pdu    *pdu;
	netsnmp_pdu    *response;
	netsnmp_variable_list *vars;
	int             arg;
	int             count;
	int             current_name = 0;
	char           *names[SNMP_MAX_CMDLINE_OIDS];
	oid             name[MAX_OID_LEN];
	size_t          name_length;
	int             status;
	int             exitval = 0;
	int             failures = 0;

	snmp_sess_init(&session);
	session.version = SNMP_VERSION_3;
	session.securityName = "arno";
	session.securityNameLen = 4;
	session.securityAuthProto = usmHMACMD5AuthProtocol;
	session.securityAuthProtoLen = USM_AUTH_PROTO_MD5_LEN;
	session.securityPrivProto = usmDESPrivProtocol;
	session.securityPrivProtoLen = USM_PRIV_PROTO_DES_LEN;
	session.securityLevel = SNMP_SEC_LEVEL_AUTHPRIV;
	init_snmp("snmpapp");
	session.securityAuthKeyLen = USM_AUTH_KU_LEN;
	if (generate_Ku(session.securityAuthProto,
		session.securityAuthProtoLen,
		(u_char *) "123456789", 9,
		session.securityAuthKey,
		&session.securityAuthKeyLen) != SNMPERR_SUCCESS) {
		snmp_perror(argv[0]);
		fprintf(stderr,
			"Error generating a key (Ku) from the supplied authentication pass phrase. \n");
		return (-2);
	}

	session.securityPrivKeyLen = USM_PRIV_KU_LEN;

	if (generate_Ku(session.securityAuthProto,
		session.securityAuthProtoLen,
		(u_char *) "987654321", 9,
		session.securityPrivKey,
		&session.securityPrivKeyLen) != SNMPERR_SUCCESS) {
		snmp_perror(argv[0]);
		fprintf(stderr,
			"Error generating a key (Ku) from the supplied privacy pass phrase. \n");
		return (-2);
	}


	session.peername = "172.16.173.33";
	names[0]=".1.3.6.1.4.1.89.35.1.69.3.0";

	SOCK_STARTUP;

	ss = snmp_open(&session);
	if (ss == NULL) {
		snmp_sess_perror("snmpget", &session);
		SOCK_CLEANUP;
		exit(1);
	}

	pdu = snmp_pdu_create(SNMP_MSG_GET);
	for (count = 0; count < current_name; count++) {
		name_length = MAX_OID_LEN;
		if (!snmp_parse_oid(names[count], name, &name_length)) {
			snmp_perror(names[count]);
			failures++;
		} else
			snmp_add_null_var(pdu, name, name_length);
	}
	if (failures) {
		SOCK_CLEANUP;
		exit(1);
	}


	status = snmp_synch_response(ss, pdu, &response);
	if (status == STAT_SUCCESS) {
		if (response->errstat == SNMP_ERR_NOERROR) {
			for (vars = response->variables; vars;
			vars = vars->next_variable)
				print_variable(vars->name, vars->name_length, vars);

		} else {
			fprintf(stderr, "Error in packet\nReason: %s\n",
				snmp_errstring(response->errstat));

			if (response->errindex != 0) {
				fprintf(stderr, "Failed object: ");
				for (count = 1, vars = response->variables;
				vars && count != response->errindex;
				vars = vars->next_variable, count++)
					/*EMPTY*/;
					if (vars) {
						fprint_objid(stderr, vars->name, vars->name_length);
					}
					fprintf(stderr, "\n");
			}
			exitval = 2;

			/*
			* retry if the errored variable was successfully removed 
			*/
		}	/* endif -- SNMP_ERR_NOERROR */

	} else if (status == STAT_TIMEOUT) {
		fprintf(stderr, "Timeout: No Response from %s.\n",
			session.peername);
		exitval = 1;

	} else {                    /* status == STAT_ERROR */
		snmp_sess_perror("snmpget", ss);
		exitval = 1;
	}                           /* endif -- STAT_SUCCESS */


	if (response)
		snmp_free_pdu(response);
	snmp_close(ss);
	SOCK_CLEANUP;

	return 0;

}

(:sourcend:)

Edit - History - Print - Recent Changes - Search
Page last modified on June 23, 2006, at 03:08 PM