⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getifaces.html

📁 SDK FAQ集
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><html lang="en"><head><title>Winsock Programmer's FAQ: Get Interface Information</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/ipaddr.html">&lt;&lt;</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 Interface List				</b></p>			</font>			</td>		<td align="right" bgcolor="#e0e0c0">			<font size="2" face=Verdana,Arial,Helvetica>				<b><a href="../examples/getmac-netbios.html">&gt;&gt;</a></b>			</font>		</td>	</tr></table><!--  ---- Body Table ----  --><table width="95%" border="0" cellpadding="10">	<tr valign="top">		<td><p>This example shows how to get the computer's network interface list,along with associated information like the broadcast addresses, thenetmasks, and some of the interface's capabilities. This program isactually a semi-useful tool, sort of like an output-only version of theUnix <tt>ifconfig</tt> program. However, its output is significantlymore readable.</p><p>This program requires Winsock 2. It definitely works under WindowsNT 4.0 if you have at least Service Pack 3 installed and perhaps alsounder Windows 98. This sample reportedly does not work on Windows 95.</p><hr noshade size=1 color=#404040><h4 class=lmargin><a href="../examples/src/getifaces.cpp">getifaces.cpp</a></h4><pre><font color="#444444">// Borland C++ 5.0: bcc32.cpp getifaces.cpp ws2_32.lib</font><font color="#444444">// Visual C++ 5.0: cl getifaces.cpp ws2_32.lib </font><font color="0000ff"><strong>#include <font color="#008000">&lt;iostream.h&gt;</font></strong></font><font color="0000ff"><strong>#include <font color="#008000">&lt;winsock2.h&gt;</font></strong></font><font color="0000ff"><strong>#include <font color="#008000">&lt;ws2tcpip.h&gt;</font></strong></font><strong>int</strong> <font color="#2040a0">doit</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF"><strong>{</strong></font>    <font color="#2040a0">SOCKET</font> <font color="#2040a0">sd</font> <font color="4444FF">=</font> <font color="#2040a0">WSASocket</font><font color="4444FF">(</font><font color="#2040a0">AF_INET</font>, <font color="#2040a0">SOCK_DGRAM</font>, <font color="#FF0000">0</font>, <font color="#FF0000">0</font>, <font color="#FF0000">0</font>, <font color="#FF0000">0</font><font color="4444FF">)</font><font color="4444FF">;</font>    <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">sd</font> <font color="4444FF">=</font><font color="4444FF">=</font> <font color="#2040a0">SOCKET_ERROR</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font>        <font color="#2040a0">cerr</font> <font color="4444FF">&lt;</font><font color="4444FF">&lt;</font> <font color="#008000">&quot;Failed to get a socket. Error &quot;</font> <font color="4444FF">&lt;</font><font color="4444FF">&lt;</font> <font color="#2040a0">WSAGetLastError</font><font color="4444FF">(</font><font color="4444FF">)</font> <font color="4444FF">&lt;</font><font color="4444FF">&lt;</font>            <font color="#2040a0">endl</font><font color="4444FF">;</font> <strong>return</strong> <font color="#FF0000">1</font><font color="4444FF">;</font>    <font color="4444FF"><strong>}</strong></font>    <font color="#2040a0">INTERFACE_INFO</font> <font color="#2040a0">InterfaceList</font><font color="4444FF">[</font><font color="#FF0000">20</font><font color="4444FF">]</font><font color="4444FF">;</font>    <strong>unsigned</strong> <strong>long</strong> <font color="#2040a0">nBytesReturned</font><font color="4444FF">;</font>    <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">WSAIoctl</font><font color="4444FF">(</font><font color="#2040a0">sd</font>, <font color="#2040a0">SIO_GET_INTERFACE_LIST</font>, <font color="#FF0000">0</font>, <font color="#FF0000">0</font>, <font color="4444FF">&amp;</font><font color="#2040a0">InterfaceList</font>,			<strong>sizeof</strong><font color="4444FF">(</font><font color="#2040a0">InterfaceList</font><font color="4444FF">)</font>, <font color="4444FF">&amp;</font><font color="#2040a0">nBytesReturned</font>, <font color="#FF0000">0</font>, <font color="#FF0000">0</font><font color="4444FF">)</font> <font color="4444FF">=</font><font color="4444FF">=</font> <font color="#2040a0">SOCKET_ERROR</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font>        <font color="#2040a0">cerr</font> <font color="4444FF">&lt;</font><font color="4444FF">&lt;</font> <font color="#008000">&quot;Failed calling WSAIoctl: error &quot;</font> <font color="4444FF">&lt;</font><font color="4444FF">&lt;</font> <font color="#2040a0">WSAGetLastError</font><font color="4444FF">(</font><font color="4444FF">)</font> <font color="4444FF">&lt;</font><font color="4444FF">&lt;</font>				<font color="#2040a0">endl</font><font color="4444FF">;</font>		<strong>return</strong> <font color="#FF0000">1</font><font color="4444FF">;</font>    <font color="4444FF"><strong>}</strong></font>    <strong>int</strong> <font color="#2040a0">nNumInterfaces</font> <font color="4444FF">=</font> <font color="#2040a0">nBytesReturned</font> / <strong>sizeof</strong><font color="4444FF">(</font><font color="#2040a0">INTERFACE_INFO</font><font color="4444FF">)</font><font color="4444FF">;</font>    <font color="#2040a0">cout</font> <font color="4444FF">&lt;</font><font color="4444FF">&lt;</font> <font color="#008000">&quot;There are &quot;</font> <font color="4444FF">&lt;</font><font color="4444FF">&lt;</font> <font color="#2040a0">nNumInterfaces</font> <font color="4444FF">&lt;</font><font color="4444FF">&lt;</font> <font color="#008000">&quot; interfaces:&quot;</font> <font color="4444FF">&lt;</font><font color="4444FF">&lt;</font> <font color="#2040a0">endl</font><font color="4444FF">;</font>    <strong>for</strong> <font color="4444FF">(</font><strong>int</strong> <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">&lt;</font> <font color="#2040a0">nNumInterfaces</font><font color="4444FF">;</font> <font color="4444FF">+</font><font color="4444FF">+</font><font color="#2040a0">i</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font>        <font color="#2040a0">cout</font> <font color="4444FF">&lt;</font><font color="4444FF">&lt;</font> <font color="#2040a0">endl</font><font color="4444FF">;</font>        <font color="#2040a0">sockaddr_in</font> <font color="4444FF">*</font><font color="#2040a0">pAddress</font><font color="4444FF">;</font>        <font color="#2040a0">pAddress</font> <font color="4444FF">=</font> <font color="4444FF">(</font><font color="#2040a0">sockaddr_in</font> <font color="4444FF">*</font><font color="4444FF">)</font> <font color="4444FF">&amp;</font> <font color="4444FF">(</font><font color="#2040a0">InterfaceList</font><font color="4444FF">[</font><font color="#2040a0">i</font><font color="4444FF">]</font>.<font color="#2040a0">iiAddress</font><font color="4444FF">)</font><font color="4444FF">;</font>        <font color="#2040a0">cout</font> <font color="4444FF">&lt;</font><font color="4444FF">&lt;</font> <font color="#008000">&quot; &quot;</font> <font color="4444FF">&lt;</font><font color="4444FF">&lt;</font> <font color="#2040a0">inet_ntoa</font><font color="4444FF">(</font><font color="#2040a0">pAddress</font><font color="4444FF">-</font><font color="4444FF">&gt;</font><font color="#2040a0">sin_addr</font><font color="4444FF">)</font><font color="4444FF">;</font>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -