📄 ipaddr.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><html lang="en"><head><title>Winsock Programmer's FAQ: Get the Local IP Address(es)</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/fdpass.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: Getting the Local IP Address </b></p> </font> </td> <td align="right" bgcolor="#e0e0c0"> <font size="2" face=Verdana,Arial,Helvetica> <b><a href="../examples/getifaces.html">>></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 local machine's IP address(es). Noteespecially the loop near the bottom of the doit() function. Although themajority of machines have only a single IP address, it is becoming commonfor a machine to have two or more IP addresses. On my home machine,for example, there is one IP address for the Ethernet network board,and one for the modem when it's connected to my ISP.</p><hr noshade size=1 color=#404040><h4 class=lmargin><a href="../examples/src/getlocalip.cpp">getlocalip.cpp</a></h4><pre><font color="#444444">// Borland C++ 5.0: bcc32.cpp getlocalip.cpp</font><font color="#444444">// Visual C++ 5.0: cl getlocalip.cpp wsock32.lib</font><strong>int</strong> <font color="#2040a0">doit</font><font color="4444FF">(</font><strong>int</strong>, <strong>char</strong> <font color="4444FF">*</font><font color="4444FF">*</font><font color="4444FF">)</font><font color="4444FF"><strong>{</strong></font> <strong>char</strong> <font color="#2040a0">ac</font><font color="4444FF">[</font><font color="#FF0000">80</font><font color="4444FF">]</font><font color="4444FF">;</font> <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">gethostname</font><font color="4444FF">(</font><font color="#2040a0">ac</font>, <strong>sizeof</strong><font color="4444FF">(</font><font color="#2040a0">ac</font><font color="4444FF">)</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"><</font><font color="4444FF"><</font> <font color="#008000">"Error "</font> <font color="4444FF"><</font><font color="4444FF"><</font> <font color="#2040a0">WSAGetLastError</font><font color="4444FF">(</font><font color="4444FF">)</font> <font color="4444FF"><</font><font color="4444FF"><</font> <font color="#008000">" when getting local host name."</font> <font color="4444FF"><</font><font color="4444FF"><</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">cout</font> <font color="4444FF"><</font><font color="4444FF"><</font> <font color="#008000">"Host name is "</font> <font color="4444FF"><</font><font color="4444FF"><</font> <font color="#2040a0">ac</font> <font color="4444FF"><</font><font color="4444FF"><</font> <font color="#008000">"."</font> <font color="4444FF"><</font><font color="4444FF"><</font> <font color="#2040a0">endl</font><font color="4444FF">;</font> <strong>struct</strong> <font color="#2040a0">hostent</font> <font color="4444FF">*</font><font color="#2040a0">phe</font> <font color="4444FF">=</font> <font color="#2040a0">gethostbyname</font><font color="4444FF">(</font><font color="#2040a0">ac</font><font color="4444FF">)</font><font color="4444FF">;</font> <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">phe</font> <font color="4444FF">=</font><font color="4444FF">=</font> <font color="#FF0000">0</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font> <font color="#2040a0">cerr</font> <font color="4444FF"><</font><font color="4444FF"><</font> <font color="#008000">"Yow! Bad host lookup."</font> <font color="4444FF"><</font><font color="4444FF"><</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>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">phe</font><font color="4444FF">-</font><font color="4444FF">></font><font color="#2040a0">h_addr_list</font><font color="4444FF">[</font><font color="#2040a0">i</font><font color="4444FF">]</font> <font color="4444FF">!</font><font color="4444FF">=</font> <font color="#FF0000">0</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> <strong>struct</strong> <font color="#2040a0">in_addr</font> <font color="#2040a0">addr</font><font color="4444FF">;</font> <font color="#2040a0">memcpy</font><font color="4444FF">(</font><font color="4444FF">&</font><font color="#2040a0">addr</font>, <font color="#2040a0">phe</font><font color="4444FF">-</font><font color="4444FF">></font><font color="#2040a0">h_addr_list</font><font color="4444FF">[</font><font color="#2040a0">i</font><font color="4444FF">]</font>, <strong>sizeof</strong><font color="4444FF">(</font><strong>struct</strong> <font color="#2040a0">in_addr</font><font color="4444FF">)</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">cout</font> <font color="4444FF"><</font><font color="4444FF"><</font> <font color="#008000">"Address "</font> <font color="4444FF"><</font><font color="4444FF"><</font> <font color="#2040a0">i</font> <font color="4444FF"><</font><font color="4444FF"><</font> <font color="#008000">": "</font> <font color="4444FF"><</font><font color="4444FF"><</font> <font color="#2040a0">inet_ntoa</font><font color="4444FF">(</font><font color="#2040a0">addr</font><font color="4444FF">)</font> <font color="4444FF"><</font><font color="4444FF"><</font> <font color="#2040a0">endl</font><font color="4444FF">;</font> <font color="4444FF"><strong>}</strong></font> <strong>return</strong> <font color="#FF0000">0</font><font color="4444FF">;</font><font color="4444FF"><strong>}</strong></font><strong>int</strong> <font color="#2040a0">main</font><font color="4444FF">(</font><strong>int</strong> <font color="#2040a0">argc</font>, <strong>char</strong> <font color="4444FF">*</font><font color="#2040a0">argv</font><font color="4444FF">[</font><font color="4444FF">]</font><font color="4444FF">)</font><font color="4444FF"><strong>{</strong></font> <font color="#2040a0">WSAData</font> <font color="#2040a0">wsaData</font><font color="4444FF">;</font> <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">WSAStartup</font><font color="4444FF">(</font><font color="#2040a0">MAKEWORD</font><font color="4444FF">(</font><font color="#FF0000">1</font>, <font color="#FF0000">1</font><font color="4444FF">)</font>, <font color="4444FF">&</font><font color="#2040a0">wsaData</font><font color="4444FF">)</font> <font color="4444FF">!</font><font color="4444FF">=</font> <font color="#FF0000">0</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font> <strong>return</strong> <font color="#FF0000">255</font><font color="4444FF">;</font> <font color="4444FF"><strong>}</strong></font> <strong>int</strong> <font color="#2040a0">retval</font> <font color="4444FF">=</font> <font color="#2040a0">doit</font><font color="4444FF">(</font><font color="#2040a0">argc</font>, <font color="#2040a0">argv</font><font color="4444FF">)</font><font color="4444FF">;</font> <font color="#2040a0">WSACleanup</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">;</font> <strong>return</strong> <font color="#2040a0">retval</font><font color="4444FF">;</font><font color="4444FF"><strong>}</strong></font></pre> </td> </tr></table><!-- ---- Document Footer ---- --><hr noshade size=1 color=#404040><table cellpadding=5 cellspacing=0 border=0 width=95% align=center> <tr> <td align=left> <a href="../examples/fdpass.html"><< Passing Sockets Between Processes</a> </td> <td align=right> <a href="../examples/getifaces.html">Get Interface Information >></a> </td> </tr> <tr> <td align=left> <i>Last modified on 29 April 2000 at 15:52 UTC-7</i> </td> <td align=right> <font size=-1>Please send corrections to <a href="mailto:tangent@cyberport.com">tangent@cyberport.com</a>.</font> </td> </tr> </table> <table cellpadding=5 cellspacing=0 border=0 width=95% align=center> <tr> <td align=left width=33%> <font size=-1> <a href="../index.html"><b><</b> Go to the main FAQ page</a> </font> </td> <td width=33%> <font size=-1> <center> <a href="http://www.cyberport.com/~tangent/programming"><b><<</b> Go to my Programming pages</a> </center> </font> </td> <td align=right width=33%> <font size=-1> <a href="http://www.cyberport.com/~tangent/"><b><<<</b> Go to my Home Page</a> </font> </td> </tr> </table> </body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -