За последние 24 часа нас посетили 17134 программиста и 1834 робота. Сейчас ищут 1585 программистов ...

Получение сведений из локального IP

Тема в разделе "Прочие вопросы по PHP", создана пользователем siiXth, 6 фев 2015.

  1. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    Всем привет, давненько не виделись.
    Требуется получить мак адрес устройства который подключен локально, пробую со своего компа на винде.
    Перегуглил и поюзал много чего, не выходит вообще.
    Сейчас перебираю порты хотя бы для успешного подключения к устройству через
    Код (Text):
    1. <?php
    2. $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    3. $i = 0;
    4. while($i<9000){
    5.     $i++;
    6.     if(@socket_connect($socket, '192.168.1.3', $i)){
    7.         file_put_contents($_SERVER['DOCUMENT_ROOT'].'/scan/'.$i.'.txt',$i);
    8.     }
    9.     else{
    10.         file_put_contents($_SERVER['DOCUMENT_ROOT'].'/scan/no.txt',$i);
    11.     }
    12. }
    но всё тщетно.
    Есть кто подобным занимался или у кого есть идеи?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    =) Зачем?
     
  3. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    Для статистики использования устройства, устройство может быть на другом ip, потому по всем локальным ip пройтись надо.
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а нельзя тупо забить все IP статично, и париться не придётся?
     
  5. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    Та пофиг на ip, просто каждый просканировать, 255 штук - не проблема.
    В общем поставил некую вещь, зовется nmap(http://nmap.org/), через консольку запускаем
    nmap -sP -n 192.168.1.3
    и радуемся возвращенному маку
    Но в пхп через exec возвращается пустота, видимо из-за того, что требуется время на получение ответа от ip, то есть асинхронно.
    Теперь нужно смотреть поток ответа как через ping 127.0.0.1, только вот не знаю как

    Добавлено спустя 3 минуты 1 секунду:
    Хотя нет, бред, ответ на ping возвращается и только после окончания выполнения, а в nmap сразу возвращается и пустой
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    может прав нету у юзера юзать нмап?
     
  7. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    А фиг его знает как даже проверить xD
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.099
    Симпатии:
    1.243
    Адрес:
    там-сям
    может nmap выводит не в stdout? поиграй c php-cli
     
  9. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    Понял, пхп не видит что данная команда доступна через exec после установки nmap
    Я когда-то подобным занимался, но вообще не помню ничего xD
     
  10. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    Ура, блин. Гадство xD
    В общем нужно указать полный путь к софте потому что там трабла с путями, в облом разбираться и еще для вывода в пхп прописать в команде 2>&1
    В итоге выглядит так
    Код (Text):
    1. $output = shell_exec('"c:\\program files (x86)\\Nmap\\nmap.exe" -sP -n 192.168.1.3 2>&1');
    2. echo "<pre>$output</pre>";
    Не разобрался почему кириллица выводится как говно, ничем не конвертируется и на распознается кодировка, но в данном случае она мне не нужна.
    Всем спасибо =)