📄 getmac-snmp.html
字号:
<font color="#2040a0">AsnObjectIdentifier</font> <font color="#2040a0">SupportedView</font><font color="4444FF">;</font> <font color="#2040a0">UINT</font> <font color="#2040a0">OID_ifEntryType</font><font color="4444FF">[</font><font color="4444FF">]</font> <font color="4444FF">=</font> <font color="4444FF"><strong>{</strong></font> <font color="#FF0000">1</font>, <font color="#FF0000">3</font>, <font color="#FF0000">6</font>, <font color="#FF0000">1</font>, <font color="#FF0000">2</font>, <font color="#FF0000">1</font>, <font color="#FF0000">2</font>, <font color="#FF0000">2</font>, <font color="#FF0000">1</font>, <font color="#FF0000">3</font> <font color="4444FF"><strong>}</strong></font><font color="4444FF">;</font> <font color="#2040a0">UINT</font> <font color="#2040a0">OID_ifEntryNum</font><font color="4444FF">[</font><font color="4444FF">]</font> <font color="4444FF">=</font> <font color="4444FF"><strong>{</strong></font> <font color="#FF0000">1</font>, <font color="#FF0000">3</font>, <font color="#FF0000">6</font>, <font color="#FF0000">1</font>, <font color="#FF0000">2</font>, <font color="#FF0000">1</font>, <font color="#FF0000">2</font>, <font color="#FF0000">1</font> <font color="4444FF"><strong>}</strong></font><font color="4444FF">;</font> <font color="#2040a0">UINT</font> <font color="#2040a0">OID_ipMACEntAddr</font><font color="4444FF">[</font><font color="4444FF">]</font> <font color="4444FF">=</font> <font color="4444FF"><strong>{</strong></font> <font color="#FF0000">1</font>, <font color="#FF0000">3</font>, <font color="#FF0000">6</font>, <font color="#FF0000">1</font>, <font color="#FF0000">2</font>, <font color="#FF0000">1</font>, <font color="#FF0000">2</font>, <font color="#FF0000">2</font>, <font color="#FF0000">1</font>, <font color="#FF0000">6</font> <font color="4444FF"><strong>}</strong></font><font color="4444FF">;</font> <font color="#444444">//, 1 ,6 };</font> <font color="#2040a0">AsnObjectIdentifier</font> <font color="#2040a0">MIB_ifMACEntAddr</font> <font color="4444FF">=</font> <font color="4444FF"><strong>{</strong></font> <strong>sizeof</strong><font color="4444FF">(</font><font color="#2040a0">OID_ipMACEntAddr</font><font color="4444FF">)</font> / <strong>sizeof</strong><font color="4444FF">(</font><font color="#2040a0">UINT</font><font color="4444FF">)</font>, <font color="#2040a0">OID_ipMACEntAddr</font> <font color="4444FF"><strong>}</strong></font><font color="4444FF">;</font> <font color="#2040a0">AsnObjectIdentifier</font> <font color="#2040a0">MIB_ifEntryType</font> <font color="4444FF">=</font> <font color="4444FF"><strong>{</strong></font> <strong>sizeof</strong><font color="4444FF">(</font><font color="#2040a0">OID_ifEntryType</font><font color="4444FF">)</font> / <strong>sizeof</strong><font color="4444FF">(</font><font color="#2040a0">UINT</font><font color="4444FF">)</font>, <font color="#2040a0">OID_ifEntryType</font> <font color="4444FF"><strong>}</strong></font><font color="4444FF">;</font> <font color="#2040a0">AsnObjectIdentifier</font> <font color="#2040a0">MIB_ifEntryNum</font> <font color="4444FF">=</font> <font color="4444FF"><strong>{</strong></font> <strong>sizeof</strong><font color="4444FF">(</font><font color="#2040a0">OID_ifEntryNum</font><font color="4444FF">)</font> / <strong>sizeof</strong><font color="4444FF">(</font><font color="#2040a0">UINT</font><font color="4444FF">)</font>, <font color="#2040a0">OID_ifEntryNum</font> <font color="4444FF"><strong>}</strong></font><font color="4444FF">;</font> <font color="#2040a0">RFC1157VarBindList</font> <font color="#2040a0">varBindList</font><font color="4444FF">;</font> <font color="#2040a0">RFC1157VarBind</font> <font color="#2040a0">varBind</font><font color="4444FF">[</font><font color="#FF0000">2</font><font color="4444FF">]</font><font color="4444FF">;</font> <font color="#2040a0">AsnInteger</font> <font color="#2040a0">errorStatus</font><font color="4444FF">;</font> <font color="#2040a0">AsnInteger</font> <font color="#2040a0">errorIndex</font><font color="4444FF">;</font> <font color="#2040a0">AsnObjectIdentifier</font> <font color="#2040a0">MIB_NULL</font> <font color="4444FF">=</font> <font color="4444FF"><strong>{</strong></font> <font color="#FF0000">0</font>, <font color="#FF0000">0</font> <font color="4444FF"><strong>}</strong></font><font color="4444FF">;</font> <strong>int</strong> <font color="#2040a0">ret</font><font color="4444FF">;</font> <strong>int</strong> <font color="#2040a0">dtmp</font><font color="4444FF">;</font> <strong>int</strong> <font color="#2040a0">i</font> <font color="4444FF">=</font> <font color="#FF0000">0</font>, <font color="#2040a0">j</font> <font color="4444FF">=</font> <font color="#FF0000">0</font><font color="4444FF">;</font> <font color="#2040a0">BOOL</font> <font color="#2040a0">found</font> <font color="4444FF">=</font> <font color="#2040a0">FALSE</font><font color="4444FF">;</font> <strong>char</strong> <font color="#2040a0">TempEthernet</font><font color="4444FF">[</font><font color="#FF0000">13</font><font color="4444FF">]</font><font color="4444FF">;</font> <font color="#2040a0">m_Init</font> <font color="4444FF">=</font> <font color="#2040a0">NULL</font><font color="4444FF">;</font> <font color="#2040a0">m_InitEx</font> <font color="4444FF">=</font> <font color="#2040a0">NULL</font><font color="4444FF">;</font> <font color="#2040a0">m_Query</font> <font color="4444FF">=</font> <font color="#2040a0">NULL</font><font color="4444FF">;</font> <font color="#2040a0">m_Trap</font> <font color="4444FF">=</font> <font color="#2040a0">NULL</font><font color="4444FF">;</font> <font color="#444444">/* Load the SNMP dll and get the addresses of the functions necessary */</font> <font color="#2040a0">m_hInst</font> <font color="4444FF">=</font> <font color="#2040a0">LoadLibrary</font><font color="4444FF">(</font><font color="#008000">"inetmib1.dll"</font><font color="4444FF">)</font><font color="4444FF">;</font> <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">m_hInst</font> <font color="4444FF"><</font> <font color="4444FF">(</font><font color="#2040a0">HINSTANCE</font><font color="4444FF">)</font> <font color="#2040a0">HINSTANCE_ERROR</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font> <font color="#2040a0">m_hInst</font> <font color="4444FF">=</font> <font color="#2040a0">NULL</font><font color="4444FF">;</font> <strong>return</strong><font color="4444FF">;</font> <font color="4444FF"><strong>}</strong></font> <font color="#2040a0">m_Init</font> <font color="4444FF">=</font> <font color="4444FF">(</font><font color="#2040a0">pSnmpExtensionInit</font><font color="4444FF">)</font> <font color="#2040a0">GetProcAddress</font><font color="4444FF">(</font><font color="#2040a0">m_hInst</font>, <font color="#008000">"SnmpExtensionInit"</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">m_InitEx</font> <font color="4444FF">=</font> <font color="4444FF">(</font><font color="#2040a0">pSnmpExtensionInitEx</font><font color="4444FF">)</font> <font color="#2040a0">GetProcAddress</font><font color="4444FF">(</font><font color="#2040a0">m_hInst</font>, <font color="#008000">"SnmpExtensionInitEx"</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">m_Query</font> <font color="4444FF">=</font> <font color="4444FF">(</font><font color="#2040a0">pSnmpExtensionQuery</font><font color="4444FF">)</font> <font color="#2040a0">GetProcAddress</font><font color="4444FF">(</font><font color="#2040a0">m_hInst</font>, <font color="#008000">"SnmpExtensionQuery"</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">m_Trap</font> <font color="4444FF">=</font> <font color="4444FF">(</font><font color="#2040a0">pSnmpExtensionTrap</font><font color="4444FF">)</font> <font color="#2040a0">GetProcAddress</font><font color="4444FF">(</font><font color="#2040a0">m_hInst</font>, <font color="#008000">"SnmpExtensionTrap"</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">m_Init</font><font color="4444FF">(</font><font color="#2040a0">GetTickCount</font><font color="4444FF">(</font><font color="4444FF">)</font>, <font color="4444FF">&</font><font color="#2040a0">PollForTrapEvent</font>, <font color="4444FF">&</font><font color="#2040a0">SupportedView</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#444444">/* Initialize the variable list to be retrieved by m_Query */</font> <font color="#2040a0">varBindList</font>.<font color="#2040a0">list</font> <font color="4444FF">=</font> <font color="#2040a0">varBind</font><font color="4444FF">;</font> <font color="#2040a0">varBind</font><font color="4444FF">[</font><font color="#FF0000">0</font><font color="4444FF">]</font>.<font color="#2040a0">name</font> <font color="4444FF">=</font> <font color="#2040a0">MIB_NULL</font><font color="4444FF">;</font> <font color="#2040a0">varBind</font><font color="4444FF">[</font><font color="#FF0000">1</font><font color="4444FF">]</font>.<font color="#2040a0">name</font> <font color="4444FF">=</font> <font color="#2040a0">MIB_NULL</font><font color="4444FF">;</font> <font color="#444444">/* Copy in the OID to find the number of entries in the Inteface table */</font> <font color="#2040a0">varBindList</font>.<font color="#2040a0">len</font> <font color="4444FF">=</font> <font color="#FF0000">1</font><font color="4444FF">;</font> <font color="#444444">/* Only retrieving one item */</font> <font color="#2040a0">SNMP_oidcpy</font><font color="4444FF">(</font><font color="4444FF">&</font><font color="#2040a0">varBind</font><font color="4444FF">[</font><font color="#FF0000">0</font><font color="4444FF">]</font>.<font color="#2040a0">name</font>, <font color="4444FF">&</font><font color="#2040a0">MIB_ifEntryNum</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">ret</font> <font color="4444FF">=</font> <font color="#2040a0">m_Query</font><font color="4444FF">(</font><font color="#2040a0">ASN_RFC1157_GETNEXTREQUEST</font>, <font color="4444FF">&</font><font color="#2040a0">varBindList</font>, <font color="4444FF">&</font><font color="#2040a0">errorStatus</font>, <font color="4444FF">&</font><font color="#2040a0">errorIndex</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">printf</font><font color="4444FF">(</font><font color="#008000">"# of adapters in this system : %i<font color="#77dd77">\n</font>"</font>, <font color="#2040a0">varBind</font><font color="4444FF">[</font><font color="#FF0000">0</font><font color="4444FF">]</font>.<font color="#2040a0">value</font>.<font color="#2040a0">asnValue</font>.<font color="#2040a0">number</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">varBindList</font>.<font color="#2040a0">len</font> <font color="4444FF">=</font> <font color="#FF0000">2</font><font color="4444FF">;</font> <font color="#444444">/* Copy in the OID of ifType, the type of interface */</font> <font color="#2040a0">SNMP_oidcpy</font><font color="4444FF">(</font><font color="4444FF">&</font><font color="#2040a0">varBind</font><font color="4444FF">[</font><font color="#FF0000">0</font><font color="4444FF">]</font>.<font color="#2040a0">name</font>, <font color="4444FF">&</font><font color="#2040a0">MIB_ifEntryType</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#444444">/* Copy in the OID of ifPhysAddress, the address */</font> <font color="#2040a0">SNMP_oidcpy</font><font color="4444FF">(</font><font color="4444FF">&</font><font color="#2040a0">varBind</font><font color="4444FF">[</font><font color="#FF0000">1</font><font color="4444FF">]</font>.<font color="#2040a0">name</font>, <font color="4444FF">&</font><font color="#2040a0">MIB_ifMACEntAddr</font><font color="4444FF">)</font><font color="4444FF">;</font> <strong>do</strong> <font color="4444FF"><strong>{</strong></font> <font color="#444444">/* Submit the query. Responses will be loaded into varBindList. We can expect this call to succeed a # of times corresponding to the # of adapters reported to be in the system */</font> <font color="#2040a0">ret</font> <font color="4444FF">=</font> <font color="#2040a0">m_Query</font><font color="4444FF">(</font><font color="#2040a0">ASN_RFC1157_GETNEXTREQUEST</font>, <font color="4444FF">&</font><font color="#2040a0">varBindList</font>, <font color="4444FF">&</font><font color="#2040a0">errorStatus</font>, <font color="4444FF">&</font><font color="#2040a0">errorIndex</font><font color="4444FF">)</font><font color="4444FF">;</font> <strong>if</strong> <font color="4444FF">(</font><font color="4444FF">!</font><font color="#2040a0">ret</font><font color="4444FF">)</font> <font color="#2040a0">ret</font> <font color="4444FF">=</font> <font color="#FF0000">1</font><font color="4444FF">;</font> <strong>else</strong> <font color="#444444">/* Confirm that the proper type has been returned */</font> <font color="#2040a0">ret</font> <font color="4444FF">=</font> <font color="#2040a0">SNMP_oidncmp</font><font color="4444FF">(</font><font color="4444FF">&</font><font color="#2040a0">varBind</font><font color="4444FF">[</font><font color="#FF0000">0</font><font color="4444FF">]</font>.<font color="#2040a0">name</font>, <font color="4444FF">&</font><font color="#2040a0">MIB_ifEntryType</font>, <font color="#2040a0">MIB_ifEntryType</font>.<font color="#2040a0">idLength</font><font color="4444FF">)</font><font color="4444FF">;</font> <strong>if</strong> <font color="4444FF">(</font><font color="4444FF">!</font><font color="#2040a0">ret</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font> <font color="#2040a0">j</font><font color="4444FF">+</font><font color="4444FF">+</font><font color="4444FF">;</font> <font color="#2040a0">dtmp</font> <font color="4444FF">=</font> <font color="#2040a0">varBind</font><font color="4444FF">[</font><font color="#FF0000">0</font><font color="4444FF">]</font>.<font color="#2040a0">value</font>.<font color="#2040a0">asnValue</font>.<font color="#2040a0">number</font><font color="4444FF">;</font> <font color="#2040a0">printf</font><font color="4444FF">(</font><font color="#008000">"Interface #%i type : %i<font color="#77dd77">\n</font>"</font>, <font color="#2040a0">j</font>, <font color="#2040a0">dtmp</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#444444">/* Type 6 describes ethernet interfaces */</font> <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">dtmp</font> <font color="4444FF">=</font><font color="4444FF">=</font> <font color="#FF0000">6</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font> <font color="#444444">/* Confirm that we have an address here */</font> <font color="#2040a0">ret</font> <font color="4444FF">=</font> <font color="#2040a0">SNMP_oidncmp</font><font color="4444FF">(</font><font color="4444FF">&</font><font color="#2040a0">varBind</font><font color="4444FF">[</font><font color="#FF0000">1</font><font color="4444FF">]</font>.<font color="#2040a0">name</font>, <font color="4444FF">&</font><font color="#2040a0">MIB_ifMACEntAddr</font>, <font color="#2040a0">MIB_ifMACEntAddr</font>.<font color="#2040a0">idLength</font><font color="4444FF">)</font><font color="4444FF">;</font> <strong>if</strong> <font color="4444FF">(</font><font color="4444FF">(</font><font color="4444FF">!</font><font color="#2040a0">ret</font><font color="4444FF">)</font> <font color="4444FF">&</font><font color="4444FF">&</font> <font color="4444FF">(</font><font color="#2040a0">varBind</font><font color="4444FF">[</font><font color="#FF0000">1</font><font color="4444FF">]</font>.<font color="#2040a0">value</font>.<font color="#2040a0">asnValue</font>.<font color="#2040a0">address</font>.<font color="#2040a0">stream</font> <font color="4444FF">!</font><font color="4444FF">=</font> <font color="#2040a0">NULL</font><font color="4444FF">)</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font> <strong>if</strong> <font color="4444FF">(</font> <font color="4444FF">(</font><font color="#2040a0">varBind</font><font color="4444FF">[</font><font color="#FF0000">1</font><font color="4444FF">]</font>.<font color="#2040a0">value</font>.<font color="#2040a0">asnValue</font>.<font color="#2040a0">address</font>.<font color="#2040a0">stream</font><font color="4444FF">[</font><font color="#FF0000">0</font><font color="4444FF">]</font> <font color="4444FF">=</font><font color="4444FF">=</font> <font color="#FF0000">0x44</font><font color="4444FF">)</font> <font color="4444FF">&</font><font color="4444FF">&</font> <font color="4444FF">(</font><font color="#2040a0">varBind</font><font color="4444FF">[</font><font color="#FF0000">1</font><font color="4444FF">]</font>.<font color="#2040a0">value</font>.<font color="#2040a0">asnValue</font>.<font color="#2040a0">address</font>.<font color="#2040a0">stream</font><font color="4444FF">[</font><font color="#FF0000">1</font><font color="4444FF">]</font> <font color="4444FF">=</font><font color="4444FF">=</font> <font color="#FF0000">0x45</font><font color="4444FF">)</font> <font color="4444FF">&</font><font color="4444FF">&</font> <font color="4444FF">(</font><font color="#2040a0">varBind</font><font color="4444FF">[</font><font color="#FF0000">1</font><font color="4444FF">]</font>.<font color="#2040a0">value</font>.<font color="#2040a0">asnValue</font>.<font color="#2040a0">address</font>.<font color="#2040a0">stream</font><font color="4444FF">[</font><font color="#FF0000">2</font><font color="4444FF">]</font> <font color="4444FF">=</font><font color="4444FF">=</font> <font color="#FF0000">0x53</font><font color="4444FF">)</font> <font color="4444FF">&</font><font color="4444FF">&</font> <font color="4444FF">(</font><font color="#2040a0">varBind</font><font color="4444FF">[</font><font color="#FF0000">1</font><font color="4444FF">]</font>.<font color="#2040a0">value</font>.<font color="#2040a0">asnValue</font>.<font color="#2040a0">address</font>.<font color="#2040a0">stream</font><font color="4444FF">[</font><font color="#FF0000">3</font><font color="4444FF">]</font> <font color="4444FF">=</font><font color="4444FF">=</font> <font color="#FF0000">0x54</font><font color="4444FF">)</font> <font color="4444FF">&</font><font color="4444FF">&</font> <font color="4444FF">(</font><font color="#2040a0">varBind</font><font color="4444FF">[</font><font color="#FF0000">1</font><font color="4444FF">]</font>.<font color="#2040a0">value</font>.<font color="#2040a0">asnValue</font>.<font color="#2040a0">address</font>.<font color="#2040a0">stream</font><font color="4444FF">[</font><font color="#FF0000">4</font><font color="4444FF">]</font> <font color="4444FF">=</font><font color="4444FF">=</font> <font color="#FF0000">0x00</font><font color="4444FF">)</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -