Advertisement
Guest User

Untitled

a guest
Dec 12th, 2016
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 11.54 KB | None | 0 0
  1. #!/usr/bin/php
  2. <?php
  3. {
  4.  
  5.     error_reporting(0);
  6.  
  7. //    $path = '/media/audit/info/';
  8.     $path = '/media/IT/Public/cpuz_log/';
  9.  
  10.     $mask = $path . "*.txt";
  11.     $filename = glob($mask);
  12.  
  13.     $mysql_host = "localhost";
  14.     $mysql_pass = "0SCJyxT1fl";
  15.     $mysql_user = "parser";
  16.     $mysql_base = "parser";
  17.  
  18.     $link = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
  19.     if (!$link) {
  20.         echo "Не могу подключиться к серверу MySQL\r\n";
  21.         die();
  22.     }
  23.  
  24.     if (!mysql_select_db($mysql_base, $link)) {
  25.         echo "Не могу подключиться к базе данных\r\n";
  26.         die();
  27.     }
  28.  
  29.     function array_map_recursive($func, $array) {
  30.     foreach ($array as $key => $val) {
  31.             if ( is_array( $array[$key] ) ) {
  32.             $array[$key] = array_map_recursive($func, $array[$key]);
  33.             } else {
  34.             $array[$key] = call_user_func( $func, $val );
  35.             }
  36.     }
  37.     return $array;
  38.     }
  39.  
  40.     function getMacAddr($computer_name)
  41.     {
  42.         $res = mysql_query("SELECT `mac` FROM `event` WHERE `comp_name`='{$computer_name}' ORDER BY `date` DESC LIMIT 1");
  43.         if (mysql_num_rows($res) == 1) {
  44.             $row = mysql_fetch_assoc($res);
  45.             return $row['mac'];
  46.         } else {
  47.             return false;
  48.         }
  49.     }
  50.  
  51.     $storage = array();
  52.     foreach ($filename as $k => $v) {
  53.         $computer_name = pathinfo($v, PATHINFO_FILENAME);
  54.         $mac = getMacAddr($computer_name);
  55.  
  56.         if (!$mac) {
  57.             continue;
  58.         }
  59.  
  60.         $data = array(
  61.         'computer_name' => $computer_name
  62.     );
  63.  
  64.         $content = file_get_contents($v);
  65.         $content = iconv('windows-1251', 'utf-8', $content);
  66.         $arr = preg_split('/\r\n(.*?)\r\n-{73}\r\n/', $content);
  67.  
  68.         if (preg_match('/CPU-Z\sversion\t{0,}(.*)\r\n/', $arr[1], $match)) {
  69.             $data['cpu_z_version'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  70.         }
  71.  
  72.         if (preg_match('/Name\t{0,}(.*)\r\n/', $arr[5], $match)) {
  73.             $data['processor_name'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  74.         }
  75.  
  76.         if (preg_match('/Codename\t{0,}(.*)\r\n/', $arr[5], $match)) {
  77.             $data['codename'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  78.         }
  79.  
  80.         if (preg_match('/Specification\t{0,}(.*)\r\n/', $arr[5], $match)) {
  81.             $data['specification'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  82.         }
  83.  
  84.         if (preg_match('/Package\s\(platform\sID\)\t{0,}(.*)\r\n/', $arr[5], $match)) {
  85.             $data['package_platform_id'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  86.         }
  87.  
  88.         if (preg_match('/Northbridge\t{0,}(.*)\r\n/', $arr[7], $match)) {
  89.             $data['northbridge'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  90.         }
  91.  
  92.         if (preg_match('/Southbridge\t{0,}(.*)\r\n/', $arr[7], $match)) {
  93.             $data['southbridge'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  94.         }
  95.  
  96.         if (preg_match('/Memory\sType\t{0,}(.*)\r\n/', $arr[7], $match)) {
  97.             $data['memory_type'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  98.         }
  99.  
  100.         if (preg_match('/Memory\sSize\t{0,}(.*)\r\n/', $arr[7], $match)) {
  101.             $data['memory_size'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  102.         }
  103.  
  104.         if (preg_match('/Channels\t{0,}(.*)\r\n/', $arr[7], $match)) {
  105.             $data['channels'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  106.         }
  107.  
  108.         if (preg_match('/Memory\sFrequency\t{0,}(.*)\r\n/', $arr[7], $match)) {
  109.             $data['memory_frequency'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  110.         }
  111.  
  112.         if (preg_match_all('/\tManufacturer\s\(ID\)\t{0,}(.*)\r\n/', $arr[8], $match)) {
  113.             $data['manufacturer'] = isset($match[1]) && !empty($match[1]) ? array_map('trim', $match[1]) : NULL;
  114.         }
  115.  
  116.         if (preg_match_all('/\tSize\t{0,}(.*)\r\n/', $arr[8], $match)) {
  117.             $data['dimm_size'] = isset($match[1]) && !empty($match[1]) ? array_map('trim', $match[1]) : NULL;
  118.         }
  119.  
  120.         if (preg_match_all('/\tMax\sbandwidth\t{0,}(.*)\r\n/', $arr[8], $match)) {
  121.             $data['dimm_max_bandwidth'] = isset($match[1]) && !empty($match[1]) ? array_map('trim', $match[1]) : NULL;
  122.         }
  123.  
  124.         if (preg_match_all('/\tPart\snumber\t{0,}(.*)\r\n/', $arr[8], $match)) {
  125.             $data['part_number'] = isset($match[1]) && !empty($match[1]) ? array_map('trim', $match[1]) : NULL;
  126.         }
  127.  
  128.         if (preg_match('/Mainboard\sModel\t{0,}(.*)\r\n/', $arr[9], $match)) {
  129.             $data['mainboard_model'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  130.         }
  131.  
  132.         if (preg_match_all('/\tTemperature\s\d\t{0,}(.*)\r\n/', $arr[11], $match)) {
  133.             $data['temperature'] = isset($match[1]) && !empty($match[1]) ? array_map('trim', $match[1]) : NULL;
  134.         }
  135.  
  136.         if (preg_match('/\tFan\s\d\t{0,}(.*)\r\n/', $arr[11], $match)) {
  137.             $data['fan'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  138.         }
  139.  
  140.         if (preg_match('/version\t{0,}(.*)\r\n/', $arr[13], $match)) {
  141.             $data['dmi_bios_version'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  142.         }
  143.  
  144.         if (preg_match('/date\t{0,}(.*)\r\n/', $arr[13], $match)) {
  145.             $data['dmi_bios_date'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  146.         }
  147.  
  148.         if (preg_match('/\tmodel\t{0,}(.*)\r\n/', $arr[13], $match)) {
  149.             $data['dmi_baseboard_model'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  150.         }
  151.  
  152.         if (preg_match('/max\sCapacity\t{0,}(.*)\r\n/', $arr[13], $match)) {
  153.             $data['dmi_max_capacity_phisical_memory'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  154.         }
  155.  
  156.         if (preg_match('/name\t{0,}(.*)\r\n/', $arr[18], $match)) {
  157.             $data['display_adapter_name'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  158.         } elseif (preg_match('/Board\sManufacturer\t{0,}(.*)\r\n/', $arr[18], $match)) {
  159.             $data['display_adapter_name'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  160.         }
  161.  
  162.         if (preg_match('/memory\ssize\t{0,}(.*)\r\n/', $arr[18], $match)) {
  163.             $data['display_adapter_memory_size'] = isset($match[1]) && !empty($match[1]) ? trim($match[1]) : NULL;
  164.         }
  165.  
  166.         if (preg_match_all('/\tName\t{0,}(.*)\r\n/', $arr[14], $match)) {
  167.             $data['storage_name'] = isset($match[1]) && !empty($match[1]) ? array_map('trim', $match[1]) : NULL;
  168.         }
  169.  
  170.         if (preg_match_all('/\tCapacity\t{0,}(.*)\r\n/', $arr[14], $match)) {
  171.             $data['storage_capacity'] = isset($match[1]) && !empty($match[1]) ? array_map('trim', $match[1]) : NULL;
  172.         }
  173.  
  174.  
  175.     $data = array_map_recursive('addslashes', $data);
  176.  
  177.  
  178. //  if($mac == '7054-d218-ebee'){
  179. //      print_r($data);
  180. //  }
  181.  
  182.     //$res = mysql_query("INSERT INTO `info` (`mac`,`computer_name`,`cpu_z_version`,`processor_name`,`codename`,`specification`,`package_platform_id`,`southbridge`,`northbridge`,`southbridge`,`memory_type`,`memory_size`,`channels`,`memory_frequency`,`manufacturer_0`,`manufacturer_1`,`manufacturer_2`,`manufacturer_3`,`dimm_size_0`,`dimm_size_1`,`dimm_size_2`,`dimm_size_3`,`dimm_max_bandwidth_0`,`dimm_max_bandwidth_1`,`dimm_max_bandwidth_2`,`dimm_max_bandwidth_3`,`part_number_0`,`part_number_1`,`part_number_2`,`part_number_3`,`mainboard_model`,`temperature_0`,`temperature_1`,`temperature_2`,`fan`,`dmi_bios_version`,`dmi_bios_date`,`dmi_baseboard_model`,`display_adapter_name`,`storage_name_0`,`storage_name_1`,`storage_name_2`,`storage_capacity_0`,`storage_capacity_1`,`storage_capacity_2`) VALUES ('{$mac}','{$computer_name}','{$data['cpu_z_version']}','{$data['processor_name']}','{$data['codename']}','{$data['specification']}','{$data['package_platform_id']}','{$data['northbridge']}','{$data['southbridge']}','{$data['memory_type']}','{$data['memory_size']}','{$data['channels']}','{$data['memory_frequency']}','{$data['manufacturer'][0]}','{$data['manufacturer'][1]}','{$data['manufacturer'][2]}','{$data['manufacturer'][3]}','{$data['dimm_size'][0]}','{$data['dimm_size'][1]}','{$data['dimm_size'][2]}','{$data['dimm_size'][3]}','{$data['dimm_max_bandwidth'][0]}','{$data['dimm_max_bandwidth'][1]}','{$data['dimm_max_bandwidth'][2]}','{$data['dimm_max_bandwidth'][3]}','{$data['part_number'][0]}','{$data['part_number'][1]}','{$data['part_number'][2]}','{$data['part_number'][3]}','{$data['mainboard_model']}','{$data['temperature'][0]}','{$data['temperature'][1]}','{$data['temperature'][2]}','{$data['fan']}','{$data['dmi_bios_version']}','{$data['dmi_bios_date']}','{$data['dmi_baseboard_model']}','{$data['display_adapter_name']}','{$data['storage_name'][0]}','{$data['storage_name'][1]}','{$data['storage_name'][2]}','{$data['storage_capacity'][0]}','{$data['storage_capacity'][1]}','{$data['storage_capacity'][2]}')");
  183.         $sql = "INSERT INTO `info` (";
  184.     $sql .= "`mac`,`computer_name`,`cpu_z_version`,`processor_name`,`codename`,`specification`,`package_platform_id`,`southbridge`,`northbridge`,`memory_type`,`memory_size`,`channels`,`memory_frequency`,`manufacturer_0`,`manufacturer_1`,`manufacturer_2`,`manufacturer_3`,`dimm_size_0`,`dimm_size_1`,`dimm_size_2`,`dimm_size_3`,`dimm_max_bandwidth_0`,`dimm_max_bandwidth_1`,`dimm_max_bandwidth_2`,`dimm_max_bandwidth_3`,`part_number_0`,`part_number_1`,`part_number_2`,`part_number_3`,`mainboard_model`,`temperature_0`,`temperature_1`,`temperature_2`,`fan`,`dmi_bios_version`,`dmi_bios_date`,`dmi_baseboard_model`,`display_adapter_name`,`storage_name_0`,`storage_name_1`,`storage_name_2`,`storage_capacity_0`,`storage_capacity_1`,`storage_capacity_2`";
  185.     $sql .= ") VALUES (";
  186.     $sql .= "'{$mac}','{$computer_name}','{$data['cpu_z_version']}','{$data['processor_name']}','{$data['codename']}','{$data['specification']}','{$data['package_platform_id']}','{$data['southbridge']}','{$data['northbridge']}','{$data['memory_type']}','{$data['memory_size']}','{$data['channels']}','{$data['memory_frequency']}','{$data['manufacturer'][0]}','{$data['manufacturer'][1]}','{$data['manufacturer'][2]}','{$data['manufacturer'][3]}','{$data['dimm_size'][0]}','{$data['dimm_size'][1]}','{$data['dimm_size'][2]}','{$data['dimm_size'][3]}','{$data['dimm_max_bandwidth'][0]}','{$data['dimm_max_bandwidth'][1]}','{$data['dimm_max_bandwidth'][2]}','{$data['dimm_max_bandwidth'][3]}','{$data['part_number'][0]}','{$data['part_number'][1]}','{$data['part_number'][2]}','{$data['part_number'][3]}','{$data['mainboard_model']}','{$data['temperature'][0]}','{$data['temperature'][1]}','{$data['temperature'][2]}','{$data['fan']}','{$data['dmi_bios_version']}','{$data['dmi_bios_date']}','{$data['dmi_baseboard_model']}','{$data['display_adapter_name']}','{$data['storage_name'][0]}','{$data['storage_name'][1]}','{$data['storage_name'][2]}','{$data['storage_capacity'][0]}','{$data['storage_capacity'][1]}','{$data['storage_capacity'][2]}'";
  187.     $sql .= ")";
  188.  
  189. //  echo "{$sql}\r\n";
  190.  
  191.     $res = mysql_query($sql);
  192.     if(!$res){
  193.         echo mysql_error();
  194.         }
  195.  
  196.  
  197. //        $storage[$mac] = $data;
  198. //  echo "\r\n-------------------------------\r\n";
  199. //  echo json_encode($data);
  200. //  echo "\r\n-------------------------------\r\n";
  201.  
  202.     }
  203.  
  204.  
  205.  
  206. //    print_r($storage);
  207. //    print_r($data['manufacturer']);
  208. }
  209.  
  210. // print_r($arr[0]);
  211. // print_r($arr[1]);
  212. // print_r($match[1]);
  213. //  print_r($data);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement