Bonjour à tous,

Je travail sous VisualC++ 2008.
Je developpe une application qui interroge les mibs des routeurs et utilise les résultats par la suite, voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
SnmpVarBindList snmpVarList; 
			AsnInteger errorStatus,errorIndex;
			snmpVarList.list = NULL;
			snmpVarList.len = 1;
			snmpVarList.list = (SnmpVarBind *)realloc(snmpVarList.list, sizeof(SnmpVarBind) *snmpVarList.len); 
 
			LPSNMP_MGR_SESSION session;  
			char resultat[MAX_PATH];  
			//ouverture de session  (ip + type: private/public)
			session = SnmpMgrOpen("192.168.12.3","com_tmp",1000,3);
			if (session!=0)
			{	SnmpMgrStrToOid(".1.3.6.1.3.59.1.1.1.1.5.10102",&snmpVarList.list->name);
				if (SnmpMgrRequest(session,SNMP_PDU_GET,&snmpVarList,&errorStatus,&errorIndex)!=0)
				{	if (errorStatus==SNMP_ERRORSTATUS_NOERROR)
					{	SnmpUtilPrintAsnAny(&snmpVarList.list->value);
					}
				}
				char test[200];
				initialise_tableau_char(test,sizeof(test),'\0');
                          strcpy(test,(char*)snmpVarList.list->value.asnValue.address.stream);
				//fermeture
				SnmpMgrClose(session);
}
Je voudrais recuperer la valeur de la variable ayant cet OID ".1.3.6.1.3.59.1.1.1.1.5.10102". J'essaye de travailler sur "snmpVarList.list->value.asnValue.address.stream" qui est un BYTE*, du moins c'est l'info que me donne visual lorsque je passe mon curseur de souris dessus!
Car lorsque je lance en mode pas à pas, je me rend compte que cette variable est en fait un "unsigned char":



Le resultat que je doit trouver est une adresse ip commencant par 172.x.x.x
J'ai donc essayé de faire tout simplement un casting, le problème: je ne recupère pas le "172" mais le '¬', comment faire?
Merci d'avance