MCPcopy Create free account
hub / github.com/MaxBelkov/visualsyslog / GetIPAddress

Method GetIPAddress

sourcecommon/MibAccess.cpp:101–143  ·  view source on GitHub ↗

iso.org.dod.internet.mgmt.mib-2.ip.ipAddrTable.ipAddrEntry.ipAddress.IPADDRESSREALVALUE

Source from the content-addressed store, hash-verified

99
100// iso.org.dod.internet.mgmt.mib-2.ip.ipAddrTable.ipAddrEntry.ipAddress.IPADDRESSREALVALUE
101BOOL 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
145BOOL MibII::GetIPMask(UINT IpArray[],UINT &IpArraySize)
146{

Callers 1

TFormFunction · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected