Samir77

<<< Back

Как сканировать BLE устройства и Bluetooth в модуле Устройства Online

Благодаря поддержке и потраченному времени tarasfrompir(а) имеем возможность пользоваться в одном модуле сразу двумя ибо известный модуль ( Системное имя модуля: bluetoothdevices) хоть и крут функциональностью , но не раз ложил систему наглухо..
Может я просто его готовить не умею..))
Ну это такое...
Что имеем... Пару исправлений и вуаля..
P.S, Обидеть никого не хотел , если что , критикуйте, и подскажите как, что, поправить!

В папке lib создаем файл bluetooth.class.php (/var/www/html/lib/bluetooth.class.php)

<?php

function pingbt($host) {
    $data = exec('l2ping '.$host.' -c1 -f | awk \'/loss/ {print $3}\'');
    if (intval($data) > 0) {
        $result = 1;
    } else {
        $result = 0;
    }
    return $result;
}

function pingble($host) {
    $data = exec('sudo timeout -s SIGINT 10s hcitool lescan | grep "'.$host.'"');
    if (stristr($data, $host)) {
        $result = 1;
    } else {
        $result = 0;
    }
    return $result;
}

в папке pinghosts в файле pinghosts.class.php вносим пару правок , ворт здесь боюсь запутаться лучше наверное выложить правленый файл (/var/www/html/modules/pinghosts/pinghosts.class.php)
было так ( 11 строка)

//Define('DEF_TYPE_OPTIONS', '0=PING (HOST)|1=WEB PAGE (URL)'); // options for 'HOST TYPE'   

стало так

Define('DEF_TYPE_OPTIONS', '0=PING (HOST)|1=WEB PAGE (URL)|2=BLUETOOTH (MAC)|3=BLE (Only LINUX) (MAC)');

далее в этом же файле (стр 210 -212 у кого как )
было так

$online=0;
   // checking
   if (!$host['TYPE']) {
    //ping host

    $online=ping(processTitle($host['HOSTNAME']));
   } else {
    //web host
    $online=getURL(processTitle($host['HOSTNAME']), 0);
    SaveFile("./cms/cached/host_".$host['ID'].'.html', $online);
    if ($host['SEARCH_WORD']!='' && !is_integer(strpos($online, $host['SEARCH_WORD']))) {
     $online=0;
    }
    if ($online) {
     $online=1;
    }
   }

стало так

             $online = 0;
            // вставил свою функцию
            // checking
            if ($host['TYPE'] == 0) {
                //ping host
                $online = ping(processTitle($host['HOSTNAME']));
            } elseif ($host['TYPE'] == 1) {
                //web host
                $online = getURL(processTitle($host['HOSTNAME']), 0);
                SaveFile("./cached/host_".$host['ID'].'.html', $online);
                if ($host['SEARCH_WORD'] != '' && !is_integer(strpos($online, $host['SEARCH_WORD']))) {
                    $online = 0;
                }
                if ($online) {
                    $online = 1;
                }
            } elseif ($host['TYPE'] == 2) {
                $online = pingbt(processTitle($host['HOSTNAME']));
            } elseif ($host['TYPE'] == 3) {
                $online = pingble(processTitle($host['HOSTNAME']));
            }

            // конец поменяного блока

И еще, на малине должна стоять библиотека для работы с Бле и Блютузом. Пару ссылок, а так Гугл рулит!)
https://xakep.ru/2020/02/21/bluetooth-ddos/#toc01

https://command-not-found.com/l2ping

Ну и подобная тема еще здесь...
https://connect.smartliving.ru/profile/5705/blog/u...

Discuss (4) (9)

See also:
2021-01-11 Отправка и удаление старых сообщений в телеграмм

Киев, Украина