За последние 24 часа нас посетили 63120 программистов и 1742 робота. Сейчас ищут 980 программистов ...

каждому IP свой MAC

Тема в разделе "Прочие вопросы по PHP", создана пользователем BUNKER, 3 окт 2006.

  1. BUNKER

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

    С нами с:
    3 окт 2006
    Сообщения:
    21
    Симпатии:
    0
    Добрый день :)
    Возникла проблема приписать каждому IP свой MAC адрес начал искать в Интернете, не чего, к сожалению не нашёл…
    Подумав, понял, что лучше сделать скрипт который читает мак адрес сетевой карточки, его IP и отправляет на E-MAIL или хранит всё в логе.
    Но как это сделать я не понимаю, всё перерыл, не кто не знает, не кто с этим не сталкивался. Дак вот, я очень прошу вас мне помочь, или хотя бы направить так сказать на путь истинный…
     
  2. Davil

    Davil Guest

    На PHP это $_SERVER['REMOTE_ADDR']
     
  3. avm

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

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    BUNKER, это возможно при таких вариантах:

    1) если ваш сервер находится в одной подсети с клиентом, тогда просто вытащить MAC из arp таблицы сервера. Никаких роутеров на пути от клиента к серверу быть не должно, или на крайний случай можно поднять специальные сервисы на пограничных клиентских PC-маршрутизаторах с которыми будет уметь общаться ваш web-сервер. Это возможный вариант для локальной сети.

    2) если на клиенте удасться запустить свое приложение. Возможно это будет условием для авторизации на вашем ресурсе. Но это плохой вариант - так делать неправильно!, но при определенных условиях - можно.

    Davil, человек просит MAC, а не IP...
     
  4. Davil

    Davil Guest

    Извиняюсь. Не понял вопрос :)
     
  5. BUNKER

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

    С нами с:
    3 окт 2006
    Сообщения:
    21
    Симпатии:
    0
    Тут даже не локальная сеть, но построена PPPoE то есть мы Интернет раздаём через Ethernet и хотим улучшить безопасность сети. PPPoE поднято на *nix сервере ос FreeBSD до клиента нет других маршрутников, только коммутаторы. Не хотелось бы заставлять клиента делать какие либо другие манипуляции кроме захода на веб страницу. Конечно можно было бы сделать проще чтоб клиент сам мак нам говорить, но я не думаю что все клиенты это поймут…
     
  6. avm

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

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    ну дык и посмотрите "arp -an"
     
  7. Anonymous

    Anonymous Guest

    Почему -an ?
     
  8. Anonymous

    Anonymous Guest

    Кстати, можно просто пропинговать всех клиентов, а потом arp -a всю табличку... и клиентам даже заходить никуда не нужно будет... главное, не забыть про тех, кто выключен был....
     
  9. BUNKER

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

    С нами с:
    3 окт 2006
    Сообщения:
    21
    Симпатии:
    0
    у нас больше тысячи клиентов, каждого клиента мак смотреть очень долго и сложно, тем более не все в онлайне бывают :)
     
  10. Anonymous

    Anonymous Guest

    Ну так никто не предлагает ручками табличку парсить.
     
  11. avm

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

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    -a -- все
    -n -- выводить ip числами, чтоб не было обратного dns-резолвинга, ибо нафик.

    BUNKER, man arp
    Код (Text):
    1. echo exec('arp -n '.$_SERVER['REMOTE_ADDR']);
     
  12. avm

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

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    если клиентские пакеты пришли к web-серверу, то его запись в arp таблице уже жива и пинговать ничего не нужно...
     
  13. Anonymous

    Anonymous Guest

    thx. Просто под Win смотрел... там этого ключа нету...
     
  14. avm

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

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    Кстати, в случае наличия в сервере нескольких физических интерфейсов и несколько кривой их настройке, для одного IP может быть несколько arp записей с одним и тем же MAC но для разных intf
     
  15. Anonymous

    Anonymous Guest

    Я просто хотил предложить пассивный вариант - не ждать, пока клиент придет на веб сервер, а простукать их, и взять arp... допустим, пометить неживых и позже их снова простучать... это избавит от необходимости кому либо заходить....
     
  16. sarsen

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

    С нами с:
    28 дек 2006
    Сообщения:
    1
    Симпатии:
    0
    Народ а можно какнить вставить функцию определения мак и последующей записью в таблицу mysql ? Вот в эти строки:
    PHP:
    1. if($baza_db->query("INSERT INTO `account` (`username`,`password`,`email`,`ip`,`ban`,`locked`) VALUES ('$r_login','$r_pass','$r_email','$_SERVER[REMOTE_ADDR]','1','1')"))
    У меня на винде апач стоит.
     
  17. Anonymous

    Anonymous Guest

     
  18. svk

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

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet
    "a" это вывести, "n" это не делать бекрезолв
     
  19. Anonymous

    Anonymous Guest

    svk,
     
  20. svk

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

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet
    упс, не заметил второй страницы темы :D