login  Naam:   Wachtwoord: 
Registreer je!
 Forum

MAC-address van client aanvragen

Offline rickwieman - 24/01/2006 15:46
Avatar van rickwiemanOnbekend Hallo programmeurs,

Hoe kan je in php het MAC-address van de client aanvragen? Op die manier kan ik specifiek tellen op hetzelfde IP. Is dit mogelijk?

Groeten,
Rick.

7 antwoorden

Gesponsorde links
Offline Ontani - 24/01/2006 15:47
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
nope onmogelijk
Offline vinTage - 24/01/2006 15:49 (laatste wijziging 24/01/2006 15:49)
Avatar van vinTage Nieuw lid
  1. <?php
  2. echo $_SERVER['REMOTE_ADDR']; // Het IP-adres van de bezoeker, bv. 141.2.68.12
  3. ?>

bron
kan je daamee ook niet tellen ?

Een mac adres kan je wel opvragen, maar dat werkt alleen op een locaal netwerk, niet via internet

Offline ikkedikke - 24/01/2006 15:53
Avatar van ikkedikke PHP expert heel misschien bestaat er een module voor apache?
ik kan iig wel in men firewall zien welk macadres de computer heeft met wie ik verbinding maak..
Offline Ontani - 24/01/2006 15:55
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
@ikkedikke, dat heeft te maken met de verbinding tussen die 2 pc's als dat via tcp of udp wordt gedaan dan zal het macaddress ergens te vinden zijn... voor php is dit nergens voor nodig. En zoals vinTage zegt, dit zou enkel op een lokaal netwerk kunnen lukken omdat je de hostname kan opvragen en van de de arptable kunt zien welk macaddress overeenkomt met die hostname.
Offline Tuinstoel - 24/01/2006 15:59
Avatar van Tuinstoel PHP expert Lees het commentaar goed:
  1. <?php
  2. /**
  3.  * Class NtMacAddress
  4.  * Returns client or server Mac Address in an intranet NT5 or NT5.1 LAN
  5.  * -----------------------------------------------
  6.  * EXAMPLE:
  7.  * $mac = &new NtMacAddress();
  8.  * echo 'SERVER MAC: '.$mac->getMac( 'server' ).'<br />CLIENT MAC: '.$mac->getMac( 'client' );
  9.  *
  10.  * NOTE: This class works only in a LAN then you will not read anything if try on localhost.
  11.  * So please use from another PC.
  12.  * _______________________________________________
  13.  *
  14.  * @author Andrea Giammarchi
  15.  * @compatibility Windows 2000 / Server , Windows XP
  16.  * ( but maybe found *nix and other OS client macaddress too )
  17.  * @site www.3site.it
  18.  * @date 09/10/2004
  19.  * @version 1.0 tested only on Win 2K / XP
  20.  */
  21. class NtMacAddress {
  22.  
  23. /**
  24. * Public method getMach. Returns client or server mac-address if is readable.
  25. *
  26. * NtMacAddress->getMac( $what:String ):String
  27. *
  28. * @param String Options: 'client' or 'server'
  29. * @return String Mac-Address if is readable, 'not found' otherwise
  30. */
  31. function getMac( $what ) {
  32. $what = &strtolower( $what );
  33. if( $what == 'server' ) {
  34. return $this->__server_macaddress();
  35. }
  36. elseif( $what == 'client' ) {
  37. return $this->__client_macaddress();
  38. }
  39. else {
  40. return '\'client\' or \'server\' ?';
  41. }
  42. }
  43.  
  44. /**
  45. * Private method __server_macaddress. Returns server mac-address if is readable.
  46. *
  47. * NtMacAddress->__server_macaddress():String
  48. *
  49. * @param no
  50. * @return String Server Mac-Address if is readable, 'not found' otherwise
  51. */
  52. function __server_macaddress() {
  53. $output = Array();
  54. exec( 'netstat -r', $output );
  55. for( $a = 0, $b = &count( $output ); $a < $b; $a++ ) {
  56. if( preg_match( "/(?i)([a-z0-9]{2} ){6}/", $output[$a] ) == true ) {
  57. $macaddress = &$output[$a];
  58. $uniquekey = &md5( $macaddress );
  59. $output[$a] = &preg_replace( "/(?i)([^a-z0-9]*?)([a-z0-9]{2} ){6}/i", "\\1 {$uniquekey} ", $output[$a] );
  60. $output[$a] = &explode( " {$uniquekey} ", $output[$a] );
  61. $uniquekey = Array( trim( $output[$a][0] ), trim( $output[$a][1] ) );
  62. $macaddress = &str_replace( $uniquekey, "", $macaddress );
  63. return trim( $macaddress );
  64. }
  65. }
  66. return 'not found';
  67. }
  68.  
  69. /**
  70. * Private method __client_macaddress. Returns client mac-address if is readable.
  71. *
  72. * NtMacAddress->__client_macaddress():String
  73. *
  74. * @param no
  75. * @return String Client Mac-Address if is readable, 'not found' otherwise
  76. */
  77. function __client_macaddress() {
  78. $output = Array();
  79. exec( 'nbtstat -A '.$_SERVER['REMOTE_ADDR'], $output );
  80. $reg = '([a-f0-9]{2}\-){5}([a-f0-9]{2})';
  81. for( $a = 0, $b = &count( $output ); $a < $b; $a++ ) {
  82. if( preg_match( "/(?i){$reg}/", $output[$a] ) == true ) {
  83. return preg_replace( "/(?iU)(.+)({$reg})(.*)/", "\\2", $output[$a] );
  84. }
  85. }
  86. return 'not found';
  87. }
  88. }
  89.  
  90. $test = new NtMacAddress;
  91. echo $test->getMac('client');
  92.  
  93. ?>
Offline ikkedikke - 24/01/2006 16:03
Avatar van ikkedikke PHP expert daarom begon ik ook over die module... Ik bedoelde alleen te zeggen dat het theoretisch mogelijk is...

Hier staat er wel iets over, maar k heb niet gekeken wat het precies inhoudt...
Offline rickwieman - 24/01/2006 16:21
Avatar van rickwieman Onbekend Heel erg bedankt, maar als dat niet zo simpel gaat, laat ik het maar zitten!

Aangezien ik de Apache van mijn webhost niet kan aanpassen...

Groeten,
Rick.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.22s