ホームページ  >  記事  >  バックエンド開発  >  mac 範囲に基づいて mac をバッチで追加します

mac 範囲に基づいて mac をバッチで追加します

WBOY
WBOYオリジナル
2016-07-25 08:48:471017ブラウズ
たとえば、11-22-33-44-[aa-ff]-55,1-2-3-34-4-4
と入力して Mac をバッチ生成します。
  1. /**
  2. * 間隔 ID に基づいて実際の複数の ID 配列に変換します
  3. * @author Yu Yi
  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 < $int_count; $i++) {
  19. if ($i % 2 == 0) {
  20. $arr_data = self::batchLink($arr_data, array($arr_arr[ $i]));
  21. } else {
  22. self::batchConvert($arr_data, $arr_arr[$i]);
  23. }
  24. }
  25. }
  26. $arr_re = array_merge($arr_re, $arr_data);
  27. }
  28. return $arr_re;
  29. }
  30. プライベート静的関数batchConvert(&$arr, $str) {
  31. $arr_str =explode('-', $str);
  32. $int_start =base_convert($arr_str[0], 16, 10) ;
  33. $int_end =base_convert($arr_str[1], 16, 10);
  34. $int_min=$int_start<$int_end?$int_start:$int_end;
  35. $int_max=$int_start>$int_end?$int_start:$int_end;
  36. for ($int_min; $int_min $_arr_str[] = Base_convert($int_min, 10, 16);
  37. }
  38. $arr = self::batchLink($arr, $_arr_str );
  39. }
  40. プライベート静的関数batchLink($arr, $arr_str) {
  41. $arr_re = array();
  42. if (!empty($arr)) {
  43. foreach ($arr as $_v1) {
  44. foreach ( $arr_str as $_v2) {
  45. $arr_re[] = $_v1 . $_v2;
  46. }
  47. }
  48. } else {
  49. $arr_re = $arr_str;
  50. }
  51. return $arr_re;
  52. }
  53. }
  54. // $str = "ab-cd-33-22-aa-[11-13]-[ab-ac]";
  55. //
  56. //$arr = BatchConvertDeviceId::convert($str);
  57. //echo '
    ';
  58. //print_r($arr);
コードをコピー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。