📄 wscontrol.html
字号:
<font color="4444FF">&</font><font color="#2040a0">tcpRequestBufSize</font>, <font color="#2040a0">ifEntry</font>, <font color="4444FF">&</font><font color="#2040a0">ifEntrySize</font><font color="4444FF">)</font><font color="4444FF">;</font> <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">result</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font> <font color="#2040a0">fprintf</font><font color="4444FF">(</font><font color="#2040a0">stderr</font>, <font color="#008000">"%s(%d) WsControl failed (%ld)<font color="#77dd77">\n</font>"</font>, <font color="#2040a0">__FILE__</font>, <font color="#2040a0">__LINE__</font>, <font color="#2040a0">WSAGetLastError1</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">WSACleanup1</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">FreeLibrary</font><font color="4444FF">(</font><font color="#2040a0">hModule</font><font color="4444FF">)</font><font color="4444FF">;</font> <strong>return</strong> <font color="#2040a0">EXIT_FAILURE</font><font color="4444FF">;</font> <font color="4444FF"><strong>}</strong></font> <font color="#444444">//print interface index and description</font> <font color="4444FF">*</font><font color="4444FF">(</font><font color="#2040a0">ifEntry</font><font color="4444FF">-</font><font color="4444FF">></font><font color="#2040a0">if_descr</font> <font color="4444FF">+</font> <font color="#2040a0">ifEntry</font><font color="4444FF">-</font><font color="4444FF">></font><font color="#2040a0">if_descrlen</font><font color="4444FF">)</font> <font color="4444FF">=</font> <font color="#FF0000">0</font><font color="4444FF">;</font> <font color="#2040a0">fprintf</font><font color="4444FF">(</font><font color="#2040a0">stdout</font>, <font color="#008000">"IF Index %lu %s<font color="#77dd77">\n</font>"</font>, <font color="#2040a0">ifEntry</font><font color="4444FF">-</font><font color="4444FF">></font><font color="#2040a0">if_index</font>, <font color="#2040a0">ifEntry</font><font color="4444FF">-</font><font color="4444FF">></font><font color="#2040a0">if_descr</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="4444FF"><strong>}</strong></font> <font color="4444FF"><strong>}</strong></font> <font color="4444FF"><strong>}</strong></font> <font color="#444444">//find the ip interface</font> <strong>for</strong> <font color="4444FF">(</font><font color="#2040a0">i</font> <font color="4444FF">=</font> <font color="#FF0000">0</font><font color="4444FF">;</font> <font color="#2040a0">i</font> <font color="4444FF"><</font> <font color="#2040a0">entityCount</font><font color="4444FF">;</font> <font color="#2040a0">i</font><font color="4444FF">+</font><font color="4444FF">+</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font> <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">entityIds</font><font color="4444FF">[</font><font color="#2040a0">i</font><font color="4444FF">]</font>.<font color="#2040a0">tei_entity</font> <font color="4444FF">=</font><font color="4444FF">=</font> <font color="#2040a0">CL_NL_ENTITY</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font> <font color="#444444">//get ip interface info</font> <font color="#2040a0">memset</font><font color="4444FF">(</font><font color="4444FF">&</font><font color="#2040a0">tcpRequestQueryInfoEx</font>, <font color="#FF0000">0</font>, <strong>sizeof</strong><font color="4444FF">(</font><font color="#2040a0">tcpRequestQueryInfoEx</font><font color="4444FF">)</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">tcpRequestQueryInfoEx</font>.<font color="#2040a0">ID</font>.<font color="#2040a0">toi_entity</font> <font color="4444FF">=</font> <font color="#2040a0">entityIds</font><font color="4444FF">[</font><font color="#2040a0">i</font><font color="4444FF">]</font><font color="4444FF">;</font> <font color="#2040a0">tcpRequestQueryInfoEx</font>.<font color="#2040a0">ID</font>.<font color="#2040a0">toi_class</font> <font color="4444FF">=</font> <font color="#2040a0">INFO_CLASS_GENERIC</font><font color="4444FF">;</font> <font color="#2040a0">tcpRequestQueryInfoEx</font>.<font color="#2040a0">ID</font>.<font color="#2040a0">toi_type</font> <font color="4444FF">=</font> <font color="#2040a0">INFO_TYPE_PROVIDER</font><font color="4444FF">;</font> <font color="#2040a0">tcpRequestQueryInfoEx</font>.<font color="#2040a0">ID</font>.<font color="#2040a0">toi_id</font> <font color="4444FF">=</font> <font color="#2040a0">ENTITY_TYPE_ID</font><font color="4444FF">;</font> <font color="#2040a0">ULONG</font> <font color="#2040a0">entityType</font><font color="4444FF">;</font> <font color="#2040a0">DWORD</font> <font color="#2040a0">entityTypeSize</font> <font color="4444FF">=</font> <strong>sizeof</strong><font color="4444FF">(</font><font color="#2040a0">entityType</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">result</font> <font color="4444FF">=</font> <font color="#2040a0">WsControl</font><font color="4444FF">(</font><font color="#2040a0">IPPROTO_TCP</font>, <font color="#2040a0">WSCTL_TCP_QUERY_INFORMATION</font>, <font color="4444FF">&</font><font color="#2040a0">tcpRequestQueryInfoEx</font>, <font color="4444FF">&</font><font color="#2040a0">tcpRequestBufSize</font>, <font color="4444FF">&</font><font color="#2040a0">entityType</font>, <font color="4444FF">&</font><font color="#2040a0">entityTypeSize</font><font color="4444FF">)</font><font color="4444FF">;</font> <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">result</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font> <font color="#2040a0">fprintf</font><font color="4444FF">(</font><font color="#2040a0">stderr</font>, <font color="#008000">"%s(%d) WsControl failed (%ld)<font color="#77dd77">\n</font>"</font>, <font color="#2040a0">__FILE__</font>, <font color="#2040a0">__LINE__</font>, <font color="#2040a0">WSAGetLastError1</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">WSACleanup1</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">FreeLibrary</font><font color="4444FF">(</font><font color="#2040a0">hModule</font><font color="4444FF">)</font><font color="4444FF">;</font> <strong>return</strong> <font color="#2040a0">EXIT_FAILURE</font><font color="4444FF">;</font> <font color="4444FF"><strong>}</strong></font> <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">entityType</font> <font color="4444FF">=</font><font color="4444FF">=</font> <font color="#2040a0">CL_NL_IP</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font> <font color="#444444">// Entity implements IP.</font> <font color="#444444">//get ip snmp info</font> <font color="#2040a0">tcpRequestQueryInfoEx</font>.<font color="#2040a0">ID</font>.<font color="#2040a0">toi_class</font> <font color="4444FF">=</font> <font color="#2040a0">INFO_CLASS_PROTOCOL</font><font color="4444FF">;</font> <font color="#2040a0">tcpRequestQueryInfoEx</font>.<font color="#2040a0">ID</font>.<font color="#2040a0">toi_id</font> <font color="4444FF">=</font> <font color="#2040a0">IP_MIB_STATS_ID</font><font color="4444FF">;</font> <font color="#2040a0">IPSNMPInfo</font> <font color="#2040a0">ipSnmpInfo</font><font color="4444FF">;</font> <font color="#2040a0">DWORD</font> <font color="#2040a0">ipSnmpInfoSize</font> <font color="4444FF">=</font> <strong>sizeof</strong><font color="4444FF">(</font><font color="#2040a0">ipSnmpInfo</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">result</font> <font color="4444FF">=</font> <font color="#2040a0">WsControl</font><font color="4444FF">(</font><font color="#2040a0">IPPROTO_TCP</font>, <font color="#2040a0">WSCTL_TCP_QUERY_INFORMATION</font>, <font color="4444FF">&</font><font color="#2040a0">tcpRequestQueryInfoEx</font>, <font color="4444FF">&</font><font color="#2040a0">tcpRequestBufSize</font>, <font color="4444FF">&</font><font color="#2040a0">ipSnmpInfo</font>, <font color="4444FF">&</font><font color="#2040a0">ipSnmpInfoSize</font><font color="4444FF">)</font><font color="4444FF">;</font> <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">result</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font> <font color="#2040a0">fprintf</font><font color="4444FF">(</font><font color="#2040a0">stderr</font>, <font color="#008000">"%s(%d) WsControl failed (%ld)<font color="#77dd77">\n</font>"</font>, <font color="#2040a0">__FILE__</font>, <font color="#2040a0">__LINE__</font>, <font color="#2040a0">WSAGetLastError1</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">WSACleanup1</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">FreeLibrary</font><font color="4444FF">(</font><font color="#2040a0">hModule</font><font color="4444FF">)</font><font color="4444FF">;</font> <strong>return</strong> <font color="#2040a0">EXIT_FAILURE</font><font color="4444FF">;</font> <font color="4444FF"><strong>}</strong></font> <font color="#444444">//print ip snmp info</font> <font color="#2040a0">fprintf</font><font color="4444FF">(</font><font color="#2040a0">stdout</font>, <font color="#008000">"IP NumIfs: %lu<font color="#77dd77">\n</font>"</font>, <font color="#2040a0">ipSnmpInfo</font>.<font color="#2040a0">ipsi_numif</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">fprintf</font><font color="4444FF">(</font><font color="#2040a0">stdout</font>, <font color="#008000">"IP NumAddrs: %lu<font color="#77dd77">\n</font>"</font>, <font color="#2040a0">ipSnmpInfo</font>.<font color="#2040a0">ipsi_numaddr</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">fprintf</font><font color="4444FF">(</font><font color="#2040a0">stdout</font>, <font color="#008000">"IP NumRoutes: %lu<font color="#77dd77">\n</font>"</font>, <font color="#2040a0">ipSnmpInfo</font>.<font color="#2040a0">ipsi_numroutes</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#444444">//get ip address list</font> <font color="#2040a0">tcpRequestQueryInfoEx</font>.<font color="#2040a0">ID</font>.<font color="#2040a0">toi_id</font> <font color="4444FF">=</font> <font color="#2040a0">IP_MIB_ADDRTABLE_ENTRY_ID</font><font color="4444FF">;</font> <font color="#2040a0">DWORD</font> <font color="#2040a0">ipAddrEntryBufSize</font> <font color="4444FF">=</font> <strong>sizeof</strong><font color="4444FF">(</font><font color="#2040a0">IPAddrEntry</font><font color="4444FF">)</font> <font color="4444FF">*</font> <font color="#2040a0">ifCount</font><font color="4444FF">;</font> <font color="#2040a0">IPAddrEntry</font> <font color="4444FF">*</font><font color="#2040a0">ipAddrEntry</font> <font color="4444FF">=</font> <font color="4444FF">(</font><font color="#2040a0">IPAddrEntry</font> <font color="4444FF">*</font><font color="4444FF">)</font> <font color="#2040a0">calloc</font><font color="4444FF">(</font><font color="#2040a0">ipAddrEntryBufSize</font>, <font color="#FF0000">1</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">result</font> <font color="4444FF">=</font> <font color="#2040a0">WsControl</font><font color="4444FF">(</font><font color="#2040a0">IPPROTO_TCP</font>, <font color="#2040a0">WSCTL_TCP_QUERY_INFORMATION</font>, <font color="4444FF">&</font><font color="#2040a0">tcpRequestQueryInfoEx</font>, <font color="4444FF">&</font><font color="#2040a0">tcpRequestBufSize</font>, <font color="#2040a0">ipAddrEntry</font>, <font color="4444FF">&</font><font color="#2040a0">ipAddrEntryBufSize</font><font color="4444FF">)</font><font color="4444FF">;</font> <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">result</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font> <font color="#2040a0">fprintf</font><font color="4444FF">(</font><font color="#2040a0">stderr</font>, <font color="#008000">"%s(%d) WsControl failed (%ld)<font color="#77dd77">\n</font>"</font>, <font color="#2040a0">__FILE__</font>, <font color="#2040a0">__LINE__</font>, <font color="#2040a0">WSAGetLastError1</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">WSACleanup1</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">FreeLibrary</font><font color="4444FF">(</font><font color="#2040a0">hModule</font><font color="4444FF">)</font><font color="4444FF">;</font> <strong>return</strong> <font color="#2040a0">EXIT_FAILURE</font><font color="4444FF">;</font> <font color="4444FF"><strong>}</strong></font> <font color="#444444">//print ip address list</font> <font color="#2040a0">DWORD</font> <font color="#2040a0">j</font><font color="4444FF">;</font> <strong>for</strong> <font color="4444FF">(</font><font color="#2040a0">j</font> <font color="4444FF">=</font> <font color="#FF0000">0</font><font color="4444FF">;</font> <font color="#2040a0">j</font> <font color="4444FF"><</font> <font color="#2040a0">ifCount</font><font color="4444FF">;</font> <font color="#2040a0">j</font><font color="4444FF">+</font><font color="4444FF">+</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font> <strong>unsigned</strong> <strong>char</strong> <font color="4444FF">*</font><font color="#2040a0">addr</font> <font color="4444FF">=</font> <font color="4444FF">(</font><strong>unsigned</strong> <strong>char</strong> <font color="4444FF">*</font><font color="4444FF">)</font> <font color="4444FF">&</font><font color="#2040a0">ipAddrEntry</font><font color="4444FF">[</font><font color="#2040a0">j</font><font color="4444FF">]</font>.<font color="#2040a0">iae_addr</font><font color="4444FF">;</font> <strong>unsigned</strong> <strong>char</strong> <font color="4444FF">*</font><font color="#2040a0">mask</font> <font color="4444FF">=</font> <font color="4444FF">(</font><strong>unsigned</strong> <strong>char</strong> <font color="4444FF">*</font><font color="4444FF">)</font> <font color="4444FF">&</font><font color="#2040a0">ipAddrEntry</font><font color="4444FF">[</font><font color="#2040a0">j</font><font color="4444FF">]</font>.<font color="#2040a0">iae_mask</font><font color="4444FF">;</font> <font color="#2040a0">fprintf</font><font color="4444FF">(</font><font color="#2040a0">stdout</font>, <font color="#008000">"IF Index %ld "</font> <font color="#008000">"Address %ld.%ld.%ld.%ld "</font> <font color="#008000">"Mask %ld.%ld.%ld.%ld<font color="#77dd77">\n</font>"</font>, <font color="#2040a0">ipAddrEntry</font><font color="4444FF">[</font><font color="#2040a0">j</font><font color="4444FF">]</font>.<font color="#2040a0">iae_index</font>, <font color="#2040a0">addr</font><font color="4444FF">[</font><font color="#FF0000">0</font><font color="4444FF">]</font>, <font color="#2040a0">addr</font><font color="4444FF">[</font><font color="#FF0000">1</font><font color="4444FF">]</font>, <font color="#2040a0">addr</font><font color="4444FF">[</font><font color="#FF0000">2</font><font color="4444FF">]</font>, <font color="#2040a0">addr</font><font color="4444FF">[</font><font color="#FF0000">3</font><font color="4444FF">]</font>, <font color="#2040a0">mask</font><font color="4444FF">[</font><font color="#FF0000">0</font><font color="4444FF">]</font>, <font color="#2040a0">mask</font><font color="4444FF">[</font><font color="#FF0000">1</font><font color="4444FF">]</font>, <font color="#2040a0">mask</font><font color="4444FF">[</font><font color="#FF0000">2</font><font color="4444FF">]</font>, <font color="#2040a0">mask</font><font color="4444FF">[</font><font color="#FF0000">3</font><font color="4444FF">]</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="4444FF"><strong>}</strong></font> <font color="#444444">//get route table</font> <font color="#2040a0">tcpRequestQueryInfoEx</font>.<font color="#2040a0">ID</font>.<font color="#2040a0">toi_id</font> <font color="4444FF">=</font> <font color="#2040a0">IP_MIB_ROUTETABLE_ENTRY_ID</font><font color="4444FF">;</font>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -