当前位置:首页 > 操作系统 > MacOs

根据mac范围批量添加mac

可以输入一个mac范围,批量添加mac比如输入11-22-33-44-[aa-ff]-55,1-2-3-34-4-4
将批量生产mac
  1. <?php
  2. /**
  3. * 根据区间id转换为实际的多个id数组
  4. * @author 于燚
  5. * 2014年2月10日15:29:09
  6. */
  7. class BatchConvertDeviceId {
  8. public static function convert($str_str) {
  9. $str_str = str_replace(',', ',',$str_str);
  10. $arr_ids = explode(',', $str_str);
  11. $arr_re=array();
  12. foreach ($arr_ids as $str_str) {
  13. $arr_arr = preg_split("/[([^[]]+)]/", $str_str, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
  14. $int_count = count($arr_arr);
  15. $arr_data = array();
  16. if ($int_count == 1) {
  17. $arr_data = $arr_arr;
  18. } else {
  19. for ($i = 0; $i < $int_count; $i++) {
  20. if ($i % 2 == 0) {
  21. $arr_data = self::batchLink($arr_data, array($arr_arr[$i]));
  22. } else {
  23. self::batchConvert($arr_data, $arr_arr[$i]);
  24. }
  25. }
  26. }
  27. $arr_re = array_merge($arr_re, $arr_data);
  28. }
  29. return $arr_re;
  30. }
  31. private static function batchConvert(&$arr, $str) {
  32. $arr_str = explode('-', $str);
  33. $int_start = base_convert($arr_str[0], 16, 10);
  34. $int_end = base_convert($arr_str[1], 16, 10);
  35. $int_min=$int_start<$int_end?$int_start:$int_end;
  36. $int_max=$int_start>$int_end?$int_start:$int_end;
  37. for ($int_min; $int_min <= $int_max; $int_min++) {
  38. $_arr_str[] = base_convert($int_min, 10, 16);
  39. }
  40. $arr = self::batchLink($arr, $_arr_str);
  41. }
  42. private static function batchLink($arr, $arr_str) {
  43. $arr_re = array();
  44. if (!empty($arr)) {
  45. foreach ($arr as $_v1) {
  46. foreach ($arr_str as $_v2) {
  47. $arr_re[] = $_v1 . $_v2;
  48. }
  49. }
  50. } else {
  51. $arr_re = $arr_str;
  52. }
  53. return $arr_re;
  54. }
  55. }
  56. //$str = "ab-cd-33-22-aa-[11-13]-[ab-ac]";
  57. //
  58. //$arr = BatchConvertDeviceId::convert($str);
  59. //echo '
    ';<li>//print_r($arr);</li>

【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐