找回密码  加入

QQ登录

只需一步,快速开始

AUTOIT CN

搜索
查看: 3778|回复: 5

[系统综合] 关于正则提取mac地址问题

[复制链接]
发表于 2015-6-25 22:05:17 | 显示全部楼层 |阅读模式
本帖最后由 m765555 于 2015-6-25 22:08 编辑

读取本局域网一无线路由器网址源码,提取所有在线用户的mac地址,老是匹配不正确,总是有多余的出现,大家帮我看看是错在哪里,
我用的正则是
(([0-9A-Fa-f]{2}\:){5}?([0-9A-Fa-f]{2})?)\,
au3全源码如下:
  1. #include <array.au3>


  2. #include <IE.au3>
  3. $oIE = _IECreate ("http://192.168.11.1/st_wireless.asp")
  4. $sText = _IEDocReadHTML ($oIE)
  5. $arr = StringRegExp($sText,'(([0-9A-Fa-f]{2}\:){5}?([0-9A-Fa-f]{2})?)\,',3)
  6. _ArrayDisplay($arr)
复制代码
我得到的结果如下:

我的目的是只想看到几个真正的mac地址,其它的不需要。其实只需要15,16,17行前端的12位mac地址,这只是一次保存,有可能不只三个无线mac在线,所以有可能获取更多,反正只要这个位置的所有mac地址。
下面我贴出我的一次保存的网页源码,参考如下:
  1. <HTML><HEAD><TITLE>D-LINK | 无线路由</TITLE>
  2. <SCRIPT language=JavaScript src="public.js"></SCRIPT>

  3. <SCRIPT language=JavaScript src="configutil.js"></SCRIPT>

  4. <SCRIPT language=JavaScript src="page.js"></SCRIPT>

  5. <META content="text/html; charset=gb2312" http-equiv=Content-Type>
  6. <META content=10;url=st_wireless.asp http-equiv=Refresh><LINK rel=STYLESHEET type=text/css href="css_router.css">
  7. <SCRIPT>
  8.         document.write("<title>"+titl+"</title>");
  9. h_ver = "A1";
  10. f_ver = "v1.00CN";
  11. var wl0_assoclist = new Array(
  12. "74:2F:68:49:E6:F2,00:06:21,1,65000,26000,307,52,144,0,0,0,,,,",
  13. "30:9B:AD:2D:2A:A1,00:22:21,1,1000,72223,1056,11,630,11,0,1,,,,",
  14. "C4:6A:B7:6C:EE:37,01:13:00,1,54000,54000,428,22,232,6,0,1,,,,"
  15. );


  16. </SCRIPT>
  17. </HEAD>
  18. <BODY leftMargin=0 rightMargin=0 topMargin=1 bgColor=#757575>
  19. <FORM name=form1>
  20. <SCRIPT>
  21. page_head(cPage);
  22. </SCRIPT>

  23. <TABLE id=header_container border=0 cellSpacing=0 cellPadding=5 width=838 align=center>
  24. <TBODY>
  25. <TR>
  26. <TD width="100%">产品名 : <A href="http://www.dlink.com.cn/webapp/dlinkweb/servenetwork/servenetwork_view.jsp?ll_Id=1"><FONT size=2>DIR-600M</FONT></A></TD>
  27. <TD noWrap align=right>硬件版本: A1 &nbsp;</TD>
  28. <TD noWrap align=right>软件版本: v1.00CN</TD></TR></TBODY></TABLE>
  29. <TABLE id=topnav_container border=0 cellSpacing=0 cellPadding=0 width=838 align=center>
  30. <TBODY>
  31. <TR>
  32. <TD vAlign=center align=middle><IMG border=0 src="router_logo.jpg" width=836 height=92 useMap=#Map1> <MAP name=Map1><AREA href="http://www.dlink.com.cn" shape=rect coords=11,20,161,71></MAP></TD></TR></TBODY></TABLE>
  33. <TABLE border=0 cellSpacing=1 cellPadding=2 width=838 bgColor=#ffffff align=center>
  34. <TBODY>
  35. <TR id=topnav_container>
  36. <TD><IMG border=0 src="router_title.jpg" width=125 height=25 useMap=#Map4> <MAP name=Map4><AREA href="http://www.dlink.com.cn/webapp/dlinkweb/servenetwork/servenetwork_view.jsp?ll_Id=1" shape=rect coords=5,4,119,21></MAP></TD>
  37. <TD id=topnavoff><A href="index.asp">设置</A></TD>
  38. <TD id=topnavoff><A href="adv_portforward.asp">高级</A></TD>
  39. <TD id=topnavoff><A href="tools_admin.asp">工具</A></TD>
  40. <TD id=topnavon><A href="st_device.asp">状态</A></TD>
  41. <TD id=topnavoff><A href="support_men.asp">帮助</A></TD></TR></TBODY></TABLE>
  42. <TABLE border=1 cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=838 bgColor=#ffffff align=center height="100%">
  43. <TBODY>
  44. <TR>
  45. <TD id=sidenav_container vAlign=top width=125 align=right>
  46. <TABLE border=0 cellSpacing=0 cellPadding=0>
  47. <TBODY>
  48. <TR>
  49. <TD id=sidenav_container>
  50. <DIV id=sidenav>
  51. <UL>
  52. <LI>
  53. <DIV id=sidenavon><A href="st_device.asp">系统信息</A></DIV>
  54. <LI>
  55. <DIV id=sidenavon><A href="st_log.asp">系统日志</A></DIV>
  56. <LI>
  57. <DIV id=sidenavon><A href="st_stats.asp">流量统计</A></DIV>
  58. <LI>
  59. <DIV id=sidenavoff>无线用户列表</DIV></LI></UL></DIV></TD></TR></TBODY></TABLE></TD>
  60. <TD id=maincontent_container vAlign=top>
  61. <DIV id=maincontent>
  62. <DIV id=box_header>
  63. <H1>无线通信客户端列表</H1>显示链接到路由器的无线客户端状态。<BR></DIV>
  64. <DIV class=box>
  65. <H2>无线客户端状态 : </H2>
  66. <TABLE border=1 cellSpacing=1 borderColor=#ffffff cellPadding=2 width=525 bgColor=#dfdfdf>
  67. <TBODY>
  68. <TR>
  69. <TD width="20%" align=middle><STRONG>MAC 地址</STRONG></TD>
  70. <TD width="10%" align=middle><STRONG>时间</STRONG></TD>
  71. <TD width="9%" align=middle><STRONG>RX 速率</STRONG></TD>
  72. <TD width="9%" align=middle><STRONG>TX 速率</STRONG></TD>
  73. <TD width="9%" align=middle><STRONG>RX 数据包</STRONG></TD>
  74. <TD width="9%" align=middle><STRONG>TX 数据包</STRONG></TD>
  75. <TD width="8%" align=middle><STRONG>WME</STRONG></TD></TR>
  76. <SCRIPT>
  77.         var out = "";
  78.         var i;
  79.         var list;
  80.         for (i=0;i<wl0_assoclist.length;i++) {
  81.                 list = wl0_assoclist[i].split(",");
  82.                 out += "<tr>\n";
  83.                 out += "<td align=\"center\">"+list[0].toUpperCase()+"</td>\n";
  84.                 out += "<td align=\"center\">"+list[1]+"</td>\n";
  85.                 out += "<td align=\"center\">"+list[3]+"</td>\n";
  86.                 out += "<td align=\"center\">"+list[4]+"</td>\n";
  87.                 out += "<td align=\"center\">"+(parseInt(list[5])+parseInt(list[6]))+"</td>\n";
  88.                 out += "<td align=\"center\">"+list[7]+"</td>\n";
  89.                 out += "<td align=\"center\">"+(list[9] == "1" ? SHARE.YES : SHARE.NO)+"</td>\n";
  90.                 out += "</tr>\n";
  91.         }
  92.         document.write(out);
  93. </SCRIPT>

  94. <TR>
  95. <TD align=middle>74:2F:68:49:E6:F2</TD>
  96. <TD align=middle>00:06:21</TD>
  97. <TD align=middle>65000</TD>
  98. <TD align=middle>26000</TD>
  99. <TD align=middle>359</TD>
  100. <TD align=middle>144</TD>
  101. <TD align=middle>否</TD></TR>
  102. <TR>
  103. <TD align=middle>30:9B:AD:2D:2A:A1</TD>
  104. <TD align=middle>00:22:21</TD>
  105. <TD align=middle>1000</TD>
  106. <TD align=middle>72223</TD>
  107. <TD align=middle>1067</TD>
  108. <TD align=middle>630</TD>
  109. <TD align=middle>否</TD></TR>
  110. <TR>
  111. <TD align=middle>C4:6A:B7:6C:EE:37</TD>
  112. <TD align=middle>01:13:00</TD>
  113. <TD align=middle>54000</TD>
  114. <TD align=middle>54000</TD>
  115. <TD align=middle>450</TD>
  116. <TD align=middle>232</TD>
  117. <TD align=middle>否</TD></TR></TBODY></TABLE></DIV></DIV></TD>
  118. <TD id=sidehelp_container vAlign=top width=150 align=left>
  119. <TABLE border=0 cellSpacing=0 cellPadding=2 bgColor=#ffffff>
  120. <TBODY>
  121. <TR>
  122. <TD id=help_text>
  123. <TD id=help_text><STRONG>帮助...</STRONG><BR>
  124. <P>显示当前无线客户端链接到路由器的链接状态。</P></TD></TR></TBODY></TABLE></TD>
  125. <SCRIPT>
  126. page_bottom();
  127. </SCRIPT>
  128. </TR></TBODY></TABLE>
  129. <TABLE id=footer_container border=0 cellSpacing=0 cellPadding=0 width=838 align=center>
  130. <TBODY>
  131. <TR>
  132. <TD width=125 align=middle>&nbsp;&nbsp;<IMG src="wireless_bottom.gif" width=114 height=35></TD>
  133. <TD width=10>&nbsp;</TD>
  134. <TD>&nbsp;</TD></TR></TBODY></TABLE><BR>
  135. <DIV align=center>版权所有 ? 2004-2010友讯网络版权所有</DIV><BR></FORM></BODY></HTML>
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x
发表于 2015-6-25 22:42:13 | 显示全部楼层
  1. \"(\S{2}\:.*?)\,
复制代码
发表于 2015-6-25 22:46:21 | 显示全部楼层
  1. \"([\d+\:\w+]+)\,
复制代码
发表于 2015-6-26 18:43:13 | 显示全部楼层
  1. $arr = StringRegExp($sText,'((?:[0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}),',3)
复制代码
发表于 2015-7-13 22:12:33 | 显示全部楼层
正则真的很厉害啊
发表于 2015-7-19 07:57:31 | 显示全部楼层
学习了,正则很强大。很难懂啊。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|小黑屋|手机版|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2019-11-15 04:06 , Processed in 0.078126 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表