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 output

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