Maison  >  Article  >  développement back-end  >  根据mac范围批量添加mac

根据mac范围批量添加mac

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


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn