За последние 24 часа нас посетили 22099 программистов и 1680 роботов. Сейчас ищут 1716 программистов ...

Прошу подсобить. Как получить MAC-адрес и IP юзера?

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

  1. lieutenant

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

    С нами с:
    1 мар 2006
    Сообщения:
    4
    Симпатии:
    0
    Адрес:
    Moscow, Russia
    Господа сильные программисты :) Очень прошу помочь добрым советом в сочетании с добрым примером.
    Задача стоит так:

    пользователь заходит на
    некую страницу, а PHP-скрипт определяет его:
    • IPшник (если юзер под внешним общим IP-адресом в инет ходит, то его внутренний),
      ID (MAC-например) какойнибудь железки на его машине (сетевуха например).
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    PHP:
    1. <?
    2. function OOPSGetIP() {
    3.     global $HTTP_SERVER_VARS;
    4.  
    5.     $IP = $HTTP_SERVER_VARS["REMOTE_ADDR"];
    6.     if(isset($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])) {
    7.         $IP .= " ".$HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
    8.     }
    9.  
    10.     $IPS = split("[ ;,]",$IP);
    11.     $IP = "";
    12.     while(list($i,$VAL) = each($IPS)) $IP .= $VAL.",";
    13.     $IP = substr($IP,0,strlen($IP)-1);
    14.  
    15.     return $IP;
    16. }?>
    MAC не определишь. а так выдай phpinfo() И посмотри что PHP знает
     
  3. lieutenant

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

    С нами с:
    1 мар 2006
    Сообщения:
    4
    Симпатии:
    0
    Адрес:
    Moscow, Russia
    Сенкс, как грится э лот =) .
    Единственное не смог потестить на предмет внешнего/внутреннего IP. Прошу автора уточнить, точно ли функция доберается да внутреннего IP, али нет, али этот момент во внимание при написании принят не был. Вот.
    Да, и еще:
    В принципе, хрен с ним с MAC-адресом. Вообще, какнибудь можно о железках пользователя узнать, может какойнибудь еше номерок перманентный гдето есть, по которому можно пользовательскую машину идентифицировать.

    Заранее спасибо, и просто спасибо =)
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    lieutenant
    ну пишешь ActiveX и вперед ...
     
  5. lieutenant

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

    С нами с:
    1 мар 2006
    Сообщения:
    4
    Симпатии:
    0
    Адрес:
    Moscow, Russia
    Да вот то-то и оно, что задача стоит "без ActiveX", т.к. его использование заметно пользователю (Explorer крамольные вопросы задает, типа "а хотите запустить?", "а оно вам надо вааще?" и т.д. =). Нужно, чтоб неявно. Эх, неужели я хочу невозможного... Ведь не женщина вроде =))
     
  6. ONK

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

    С нами с:
    4 фев 2006
    Сообщения:
    281
    Симпатии:
    0
    Адрес:
    СПб
    Что-то можно собрать с помощью Js, но до CPUid точно не доберёшься. В самом HTTP протоколе уникальной идентификации пользователя нет, она есть в TCP/IP протоколе, над которым надстроен HTTP и это тот самый ip адрес. Но и на ip адрес рассчитывать нельзя т.к. он может принадлежать анонимному прокси серверу, через который заходит клиент.
     
  7. lieutenant

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

    С нами с:
    1 мар 2006
    Сообщения:
    4
    Симпатии:
    0
    Адрес:
    Moscow, Russia
    CPUid и не надо. Какой-нибудь признак машины. Может подскажете, как задачу можно альтернативно решить, но так, чтоб InetExplorer не ругался.
     
  8. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    а ты скажи что тебе на самом деле надо? может ты не в ту сторону смотришь?
     
  9. troy

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

    С нами с:
    8 июн 2006
    Сообщения:
    2
    Симпатии:
    0
    О. И меня это интересует.
    Может кто подскажет как определить комп пользователя однозначно с помощью ПХП.
     
  10. olo

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

    С нами с:
    28 апр 2006
    Сообщения:
    272
    Симпатии:
    0
    Однозначно юзверя с помощью РНР не определить никак, ибо РНР знает о юзвере ровно столько, сколько инфы приходит в HTTP-заголовках, кои можно отправлять самостоятельно. На этот счет даже статья есть
     
  11. Goryn

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

    С нами с:
    4 апр 2006
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    Ярославль
    $_SERVER['REMOTE_ADDR'] - IP адрес удаленного компа
    gethostbyaddr - возвращает host name
    $machine = gethostbyaddr($_SERVER['REMOTE_ADDR']);
     
  12. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Goryn

    я зайду через анонимнй прокси и ты будешь видуть адрес этого прокси, а не как не мой.

    ИМХО 100% гарантии определить тачку юзера нельзя из-за особенностей самого протокола. об этом писалось гуеву тучу раз.
     
  13. Vah

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

    С нами с:
    15 май 2006
    Сообщения:
    228
    Симпатии:
    0
    а активикс в юниксе не работает.....

    на факл локального адреса
    Посмотри след. код...
    Код (Text):
    1.  
    2. <SCRIPT>
    3. var ip = new java.net.InetAddress.getLocalHost();
    4. var ipStr = new java.lang.String(ip);
    5. document.writeln(ipStr.substring(ipStr.indexOf("/")+1));
    6. </SCRIPT>
    потом AJAX проруливает........ дерзай.....
     
  14. olo

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

    С нами с:
    28 апр 2006
    Сообщения:
    272
    Симпатии:
    0
    Памойму ты намешал яву с яваскриптом
     
  15. Vah

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

    С нами с:
    15 май 2006
    Сообщения:
    228
    Симпатии:
    0
    да...... ява есть и в юниксе и в виндах..... и не надо никакого актив икс........
    код работает везде где есть ява....
     
  16. Goryn

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

    С нами с:
    4 апр 2006
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    Ярославль
    440hz
    Про проксю с тобой полностью согласен.
     
  17. vasa_c

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

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    И что? А 440hz все равно зайдет через прокси, отключит яву и пошлет телнетом данные какие захочет.
    Для статистики REMOTE_ADDR хватит, а для 100% идентификации и это не поможет.
     
  18. Vah

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

    С нами с:
    15 май 2006
    Сообщения:
    228
    Симпатии:
    0
    а для 100% идентификации кого?? привязываешь к ИП Ремоте который и вперед...... если выпендриваться начнут - посылать.... не твои проблемы......

    Яву отключит, неотключит...... треп..... "на каждую хитрую задницу всегда найдется болт с резьбой" (с)..... можно ваще выставить авторизацию через аякс после тестов на ИПы, наличие явы.......

    440hz тебе правильно написал - напиши что нужно!! а я тебе напишу как можно сделать чтоб код не работал.....

    как говорится "Я - это я, а ты - это буковки на мониторе"...... и ничего с этим не поделать........ ты впринципе сидя дома не сможешь узнать какой у меня дома монитор........ даже если у меня драйвер правильный установлен....... ну если конечно ты ни телепат....