iso.org.dod.internet.mgmt.mib-2.ip.ipAddrTable.ipAddrEntry.ipAddress.IPADDRESSREALVALUE
| 99 | |
| 100 | // iso.org.dod.internet.mgmt.mib-2.ip.ipAddrTable.ipAddrEntry.ipAddress.IPADDRESSREALVALUE |
| 101 | BOOL MibII::GetIPAddress(UINT IpArray[], UINT & IpArraySize) |
| 102 | { |
| 103 | UINT OID_ipAdEntAddr[] = { 1, 3, 6, 1, 2, 1, 4, 20, 1, 1 }; |
| 104 | AsnObjectIdentifier MIB_ipAdEntAddr = { sizeof(OID_ipAdEntAddr)/sizeof(UINT), OID_ipAdEntAddr }; |
| 105 | RFC1157VarBindList varBindList; |
| 106 | RFC1157VarBind varBind[1]; |
| 107 | AsnInteger errorStatus; |
| 108 | AsnInteger errorIndex; |
| 109 | AsnObjectIdentifier MIB_NULL = {0,0}; |
| 110 | BOOL Exit; |
| 111 | int ret; |
| 112 | int IpCount=0; |
| 113 | DWORD dtmp; |
| 114 | |
| 115 | varBindList.list = varBind; |
| 116 | varBindList.len = 1; |
| 117 | varBind[0].name = MIB_NULL; |
| 118 | SNMP_oidcpy(&varBind[0].name,&MIB_ipAdEntAddr); |
| 119 | Exit = FALSE; |
| 120 | |
| 121 | while(!Exit){ |
| 122 | ret = Query(ASN_RFC1157_GETNEXTREQUEST,&varBindList,&errorStatus,&errorIndex); |
| 123 | |
| 124 | if(!ret) |
| 125 | Exit=TRUE; |
| 126 | else{ |
| 127 | ret = SNMP_oidncmp(&varBind[0].name,&MIB_ipAdEntAddr,MIB_ipAdEntAddr.idLength); |
| 128 | if(ret!=0){ |
| 129 | Exit=TRUE; |
| 130 | } |
| 131 | else{ |
| 132 | dtmp = *((DWORD *)varBind[0].value.asnValue.address.stream); |
| 133 | IpArray[IpCount] = dtmp; |
| 134 | IpCount++; |
| 135 | if((UINT)IpCount>=IpArraySize) |
| 136 | Exit = TRUE; |
| 137 | } |
| 138 | } |
| 139 | } |
| 140 | IpArraySize = IpCount; |
| 141 | SNMP_FreeVarBind(&varBind[0]); |
| 142 | return Exit; |
| 143 | } |
| 144 | |
| 145 | BOOL MibII::GetIPMask(UINT IpArray[],UINT &IpArraySize) |
| 146 | { |