📄 getmac-snmp.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><html lang="en"><head><title>Winsock Programmer's FAQ: Get MAC Address, SNMP Method</title><link rel="Stylesheet" type="text/css" href="../faq.css"></head><body bgcolor="#ffffee" text="#000000" link="#491e00" vlink="#7d2e01" alink="#da7417"><!-- ---- Header Bar ---- --><table border="0" width="95%" bgcolor="#006000" cellpadding="5" cellspacing="3" align="center"> <tr> <td align="left" bgcolor="#e0e0c0"> <font size="2" face=Verdana,Arial,Helvetica> <b><a href="../examples/getmac-rpc.html"><<</a></b> </font> </td> <td align="center"> <font face=Verdana,Arial,Helvetica color="#ffffee"> <p align=center class=bigger3><b> Winsock Programmer's FAQ<br> Example: How to Get the Ethernet MAC Address, SNMP Method </b></p> </font> </td> <td align="right" bgcolor="#e0e0c0"> <font size="2" face=Verdana,Arial,Helvetica> <b><a href="../examples/username.html">>></a></b> </font> </td> </tr></table><!-- ---- Body Table ---- --><table width="95%" border="0" cellpadding="10"> <tr valign="top"> <td><p><a href="mailto:James.Marsh@sandtechnology.com">James Marsh</a>writes:</p><i><p class=inset>In my search for an ironclad method of findingthe MAC address of the ethernet card of a system, I attemptedthe NetBIOS method as described in the FAQ, but found this tobe unacceptable as some of our customers reportedly didn't use[NetBIOS]. I passed over the RPC method, and found a solution in a <ahref="http://members.tripod.com/~staskh/">page</a> maintained by StasKhirman and Raz Galili.... They describe a method of using the internalSNMP calls in Windows (NT, 95, and 2000 have worked for me) that areused by netstat and other windows utilities, but unfortunately provideno code example for finding the MAC code.</p><p class=inset>[Below is] a small program I've written up, so thathopefully other people won't have to go through the same learning curveI did with SNMP. I will also attach a file, snmpapi.cpp, that was writtenby Stas Khirman and distributed on his web page.</p><p class=inset>A great resource for those interestedin retrieving system info through this method is<a href="http://www.alvestrand.no/domen/objectid/top.html">http://www.alvestrand.no/domen/objectid/top.html</a>.</p></i><hr noshade size=1 color=#404040><h4 class=lmargin><a href="../examples/src/snmpmac.cpp">snmpmac.cpp</a></h4><pre><font color="0000ff"><strong>#include <font color="#008000"><snmp.h></font></strong></font><font color="0000ff"><strong>#include <font color="#008000"><conio.h></font></strong></font><font color="0000ff"><strong>#include <font color="#008000"><stdio.h></font></strong></font><strong>typedef</strong> <font color="#2040a0">BOOL</font><font color="4444FF">(</font><font color="#2040a0">WINAPI</font> <font color="4444FF">*</font> <font color="#2040a0">pSnmpExtensionInit</font><font color="4444FF">)</font> <font color="4444FF">(</font> <font color="#2040a0">IN</font> <font color="#2040a0">DWORD</font> <font color="#2040a0">dwTimeZeroReference</font>, <font color="#2040a0">OUT</font> <font color="#2040a0">HANDLE</font> <font color="4444FF">*</font> <font color="#2040a0">hPollForTrapEvent</font>, <font color="#2040a0">OUT</font> <font color="#2040a0">AsnObjectIdentifier</font> <font color="4444FF">*</font> <font color="#2040a0">supportedView</font><font color="4444FF">)</font><font color="4444FF">;</font><strong>typedef</strong> <font color="#2040a0">BOOL</font><font color="4444FF">(</font><font color="#2040a0">WINAPI</font> <font color="4444FF">*</font> <font color="#2040a0">pSnmpExtensionTrap</font><font color="4444FF">)</font> <font color="4444FF">(</font> <font color="#2040a0">OUT</font> <font color="#2040a0">AsnObjectIdentifier</font> <font color="4444FF">*</font> <font color="#2040a0">enterprise</font>, <font color="#2040a0">OUT</font> <font color="#2040a0">AsnInteger</font> <font color="4444FF">*</font> <font color="#2040a0">genericTrap</font>, <font color="#2040a0">OUT</font> <font color="#2040a0">AsnInteger</font> <font color="4444FF">*</font> <font color="#2040a0">specificTrap</font>, <font color="#2040a0">OUT</font> <font color="#2040a0">AsnTimeticks</font> <font color="4444FF">*</font> <font color="#2040a0">timeStamp</font>, <font color="#2040a0">OUT</font> <font color="#2040a0">RFC1157VarBindList</font> <font color="4444FF">*</font> <font color="#2040a0">variableBindings</font><font color="4444FF">)</font><font color="4444FF">;</font><strong>typedef</strong> <font color="#2040a0">BOOL</font><font color="4444FF">(</font><font color="#2040a0">WINAPI</font> <font color="4444FF">*</font> <font color="#2040a0">pSnmpExtensionQuery</font><font color="4444FF">)</font> <font color="4444FF">(</font> <font color="#2040a0">IN</font> <font color="#2040a0">BYTE</font> <font color="#2040a0">requestType</font>, <font color="#2040a0">IN</font> <font color="#2040a0">OUT</font> <font color="#2040a0">RFC1157VarBindList</font> <font color="4444FF">*</font> <font color="#2040a0">variableBindings</font>, <font color="#2040a0">OUT</font> <font color="#2040a0">AsnInteger</font> <font color="4444FF">*</font> <font color="#2040a0">errorStatus</font>, <font color="#2040a0">OUT</font> <font color="#2040a0">AsnInteger</font> <font color="4444FF">*</font> <font color="#2040a0">errorIndex</font><font color="4444FF">)</font><font color="4444FF">;</font><strong>typedef</strong> <font color="#2040a0">BOOL</font><font color="4444FF">(</font><font color="#2040a0">WINAPI</font> <font color="4444FF">*</font> <font color="#2040a0">pSnmpExtensionInitEx</font><font color="4444FF">)</font> <font color="4444FF">(</font> <font color="#2040a0">OUT</font> <font color="#2040a0">AsnObjectIdentifier</font> <font color="4444FF">*</font> <font color="#2040a0">supportedView</font><font color="4444FF">)</font><font color="4444FF">;</font> <strong>void</strong> <font color="#2040a0">main</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF"><strong>{</strong></font> <font color="#2040a0">HINSTANCE</font> <font color="#2040a0">m_hInst</font><font color="4444FF">;</font> <font color="#2040a0">pSnmpExtensionInit</font> <font color="#2040a0">m_Init</font><font color="4444FF">;</font> <font color="#2040a0">pSnmpExtensionInitEx</font> <font color="#2040a0">m_InitEx</font><font color="4444FF">;</font> <font color="#2040a0">pSnmpExtensionQuery</font> <font color="#2040a0">m_Query</font><font color="4444FF">;</font> <font color="#2040a0">pSnmpExtensionTrap</font> <font color="#2040a0">m_Trap</font><font color="4444FF">;</font> <font color="#2040a0">HANDLE</font> <font color="#2040a0">PollForTrapEvent</font><font color="4444FF">;</font>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -