📄 arpsend_8h.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"><title>arpsend: arpsend.h文件参考</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- 制作者 Doxygen 1.3.9.1 --><div class="qindex"><a class="qindex" href="index.html">首页</a> | <a class="qindex" href="namespaces.html">名字空间列表</a> | <a class="qindex" href="annotated.html">组合类型列表</a> | <a class="qindex" href="files.html">文件列表</a> | <a class="qindex" href="functions.html">组合类型成员</a> | <a class="qindex" href="globals.html">文件成员</a></div><h1>arpsend.h文件参考</h1><code>#include "resource.h"</code><br><p><a href="arpsend_8h-source.html">浏览该文件的源代码。</a><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>组合类型</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_t_l_header.html">TLHeader</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">以太网传输层头结构. <a href="struct_t_l_header.html#_details">更多...</a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_pack_data.html">PackData</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">以太网数据包结构. <a href="struct_pack_data.html#_details">更多...</a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_r_p_packet.html">ARPPacket</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">arp数据包结构 <a href="struct_a_r_p_packet.html#_details">更多...</a><br></td></tr><tr><td colspan="2"><br><h2>函数</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="arpsend_8h.html#a1">arpsend</a> ()</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">arp数据包 发送一个arp数据包 <a href="#a1"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="arpsend_8h.html#a2">strtoaddr</a> (const LPSTR str, unsigned char *add)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">将字符类型的数据转化为6byte16进制地址 <a href="#a2"></a><br></td></tr><tr><td colspan="2"><br><h2>变量</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct_a_r_p_packet.html">ARPPacket</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="arpsend_8h.html#a0">arpPacket</a></td></tr></table><hr><h2>函数文档</h2><a class="anchor" name="a1" doxytag="arpsend.h::arpsend"></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">bool arpsend </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p>arp数据包 发送一个arp数据包 <p><dl compact><dt><b>返回:</b></dt><dd>成功发送时返回为真 </dd></dl><div class="fragment"><pre class="fragment">00051 {00052 LPADAPTER lpAdapter; <span class="comment">//指向网卡设备的指针</span>00053 LPPACKET lpPacket; <span class="comment">//指向数据包结构的指针</span>00054 <span class="keywordtype">char</span> AdapterName[8192]; <span class="comment">//存储网卡名的数组</span>00055 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> AdapterLength; <span class="comment">//网卡名数组的长度</span>00056 AdapterLength = <span class="keyword">sizeof</span>(AdapterName);00057 00058 <span class="keywordflow">if</span>(PacketGetAdapterNames(AdapterName,&AdapterLength)==FALSE) <span class="comment">//获取网卡设备名</span>00059 {00060 cout<<<span class="stringliteral">"无法获得网卡名"</span><<endl;00061 <span class="keywordflow">return</span> 0;00062 }00063 00064 lpAdapter = PacketOpenAdapter(AdapterName); <span class="comment">//打开网卡设备</span>00065 <span class="keywordflow">if</span> (!lpAdapter || (lpAdapter->hFile == INVALID_HANDLE_VALUE))<span class="comment">//无法打开设备,失败返回</span>00066 {00067 cout<<<span class="stringliteral">"无法打开网卡驱动"</span><<endl;00068 <span class="keywordflow">return</span> 0;00069 }00070 00071 <span class="keywordflow">if</span>((lpPacket = PacketAllocatePacket())==NULL) <span class="comment">//为数据包结构分配内存</span>00072 {00073 cout<<<span class="stringliteral">"无法给PACKET结构指针分配内存"</span><<endl;00074 <span class="keywordflow">return</span> 0;00075 }00076 00077 PacketInitPacket(lpPacket, &arpPacket, <span class="keyword">sizeof</span>(arpPacket)); <span class="comment">//使用自定义的结构ARPPacket初始化数据包结构</span>00078 00079 <span class="keywordflow">if</span>(PacketSetNumWrites(lpAdapter,1)==FALSE) <span class="comment">//设置每次发送的数据包数目为1</span>00080 {00081 cout<<<span class="stringliteral">"无法设置发送包的数目"</span><<endl;00082 <span class="keywordflow">return</span> 0;00083 }00084 00085 <span class="keywordflow">if</span>(PacketSendPacket(lpAdapter,lpPacket,TRUE)==FALSE) <span class="comment">//发送数据包</span>00086 {00087 cout<<<span class="stringliteral">"无法发送包"</span><<endl;00088 <span class="keywordflow">return</span> 0;00089 }00090 00091 PacketFreePacket(lpPacket); <span class="comment">//释放内存资源</span>00092 PacketCloseAdapter(lpAdapter); <span class="comment">//释放网卡设备</span>00093 00094 <span class="keywordflow">return</span> 1;00095 00096 00097 }</pre></div><p> </td> </tr></table><a class="anchor" name="a2" doxytag="arpsend.h::strtoaddr"></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">bool strtoaddr </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const LPSTR </td> <td class="mdname" nowrap> <em>str</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>unsigned char * </td> <td class="mdname" nowrap> <em>add</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p>将字符类型的数据转化为6byte16进制地址 <p><dl compact><dt><b>参数:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>const</em> </td><td>LPSTR str:输入的字符 </td></tr> <tr><td valign="top"></td><td valign="top"><em>unsigned</em> </td><td>char*add:输出转化完的16进制数 </td></tr> </table></dl><dl compact><dt><b>返回:</b></dt><dd>转化成功则返回真 </dd></dl><div class="fragment"><pre class="fragment">00024 {00025 <span class="keywordtype">char</span> temp1,temp2=0;00026 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0;i<6;i++)00027 {00028 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j=0;j<2;j++)00029 {00030 temp1=str[i*2+j];00031 <span class="keywordflow">if</span>(temp1>=<span class="charliteral">'a'</span>&&temp1<=<span class="charliteral">'f'</span>)temp1=temp1-<span class="charliteral">'a'</span>+10;00032 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(temp1>=<span class="charliteral">'A'</span>&&temp1<=<span class="charliteral">'F'</span>)temp1=temp1-<span class="charliteral">'A'</span>+10;00033 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(temp1>=<span class="charliteral">'0'</span>&&temp1<=<span class="charliteral">'9'</span>)temp1=temp1-<span class="charliteral">'0'</span>;00034 <span class="keywordflow">else</span>00035 {00036 cout<<<span class="stringliteral">"输入数据不正确,请输入16进制数据"</span><<endl;00037 <span class="keywordflow">return</span> 0;00038 }00039 temp2=temp2*16+temp1;00040 }00041 add[i]=temp2;00042 }00043 <span class="keywordflow">return</span> 1;00044 }</pre></div><p> </td> </tr></table><hr><h2>变量文档</h2><a class="anchor" name="a0" doxytag="arpsend.h::arpPacket"></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="struct_a_r_p_packet.html">ARPPacket</a> <a class="el" href="arpsend_8h.html#a0">arpPacket</a> </td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p> </td> </tr></table><hr size="1"><address style="align: right;"><small>Generated at Sun Oct 31 15:17:47 2004 for arpsend by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -