[javascript] mac address ophalen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Kasper Heyndrickx

Kasper Heyndrickx

25/08/2009 20:36:00
Quote Anchor link
Dag iedereen

Ik moet voor mijn vakantiejob een systeempje in elkaar steken waar ik het mac address moet ophalen. Door op een knop te drukken dat die dan in een database wordt gestoken. Die knop en zo kan ik wel doen. Maar ik weet niet hoe ik het mac address moet ophalen. Ik denk in de richting van javascript..?

Wie kan mij helpen? Alvast bedankt!

groeten Kasper
 
PHP hulp

PHP hulp

23/11/2024 17:25:39
 
Matthias R

Matthias R

25/08/2009 20:39:00
Quote Anchor link
Ik denk niet dat dit mogelijk is met javascript


google zegt php:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function returnMacAddress() {
// This code is under the GNU Public Licence
// Written by michael_stankiewicz {don't spam} at yahoo {no spam} dot com
// Tested only on linux, please report bugs

// WARNING: the commands 'which' and 'arp' should be executable
// by the apache user; on most linux boxes the default configuration
// should work fine

// Get the arp executable path
$location = `which arp`;
// Execute the arp command and store the output in $arpTable
$arpTable = `$location`;
// Split the output so every line is an entry of the $arpSplitted array
$arpSplitted = split("\n",$arpTable);
// Get the remote ip address (the ip address of the client, the browser)
$remoteIp = $GLOBALS['REMOTE_ADDR'];
// Cicle the array to find the match with the remote ip address
foreach ($arpSplitted as $value) {
// Split every arp line, this is done in case the format of the arp
// command output is a bit different than expected
$valueSplitted = split(" ",$value);
foreach ($valueSplitted as $spLine) {
if (preg_match("/$remoteIp/",$spLine)) {
$ipFound = true;
}
// The ip address has been found, now rescan all the string
// to get the mac address
if ($ipFound) {
// Rescan all the string, in case the mac address, in the string
// returned by arp, comes before the ip address
// (you know, Murphy's laws)
reset($valueSplitted);
foreach ($valueSplitted as $spLine) {
if (preg_match("/[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f]/i",$spLine)) {
return $spLine;
}
}
}
$ipFound = false;
}
}
return false;
}

bron: devarticles
 
Jan Koehoorn

Jan Koehoorn

25/08/2009 20:39:00
Quote Anchor link
Uiteraard alleen aan de client side:

http://www.webdeveloper.com/forum/showthread.php?t=134120
 
Kasper Heyndrickx

Kasper Heyndrickx

25/08/2009 20:46:00
Quote Anchor link
ik krijg nooit iets te zien.. Ik weet niet hou dat komt.. :s
zijn er andere scripts?
 
Matthias R

Matthias R

25/08/2009 20:47:00
Quote Anchor link
je weet dat je die functie moet oproepen??
niet gwn copy paste??
 
Kasper Heyndrickx

Kasper Heyndrickx

25/08/2009 20:49:00
Quote Anchor link
ik zet op de submit-knop een onclick met de functie..
 
Matthias R

Matthias R

25/08/2009 20:53:00
Quote Anchor link
...
wat ik gegeven heb is een PHP functie...
die roep je op met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
returnMacAddress();
?>
 
Kasper Heyndrickx

Kasper Heyndrickx

25/08/2009 20:56:00
Quote Anchor link
Matthias schreef op 25.08.2009 20:53:
...
wat ik gegeven heb is een PHP functie...
die roep je op met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
returnMacAddress();
?>

en er zitten nog gaten in heb ik gezien ook (;
 
Matthias R

Matthias R

25/08/2009 20:59:00
Quote Anchor link
hoe bedoelde??
 
Kasper Heyndrickx

Kasper Heyndrickx

25/08/2009 21:01:00
Quote Anchor link
Notice: Undefined index: REMOTE_ADDR in E:\UsbWebserver\Root\inventaris\index.php on line 23
$GLOBALS -> $_SERVER

Notice: Undefined variable: ipFound in E:\UsbWebserver\Root\inventaris\index.php on line 35

de variabele is niet vroeger vermeld geweest..

zetten als false?
 
Matthias R

Matthias R

25/08/2009 21:06:00
Quote Anchor link
$remoteIp = $GLOBALS['REMOTE_ADDR'];

moet worden:

$remoteIp = $_SERVER['REMOTE_ADDR'];


denk ik
 
Kasper Heyndrickx

Kasper Heyndrickx

25/08/2009 21:20:00
Quote Anchor link
dit had ik al maar wat met die variabele die hij nog niet vroeger had ingesteld..?
 
Matthias R

Matthias R

25/08/2009 21:31:00
Quote Anchor link
probeer eerst dit:

Load het script up naar een server op het internet.
en probeer het daar nog eens,
nu werk je waarschijnlijk op wamp
en ziet hij je IP niet als een echt IP
dus $IPfound niet ingesteld doordat de preg_match false weergeeft.


indien dit niet werkt

verander

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
if (preg_match("/$remoteIp/",$spLine)) {
$ipFound = true;
}


naar

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$ipFound = true;



probeer eerste de eerste methode...
en als dit niet werkt probeer dan het 2e voorbeeld
als dit niet werkt
upload het 2e voorbeeld naar een server die verbonden is met internet..
als het dan nog niet werkt,
geef maar een jel,
maar ik vermoed dat voorbeeld 1 of 2 wel voldoende zal zijn
Gewijzigd op 01/01/1970 01:00:00 door Matthias R
 
Jelmer -

Jelmer -

25/08/2009 23:08:00
Quote Anchor link
Is het een Linux of een Windows server? Het script maakt gebruik van programma's die ik alleen ken op linux.

Staat de server in hetzelfde netwerk als de computer waarvan je het mac adres wilt weten? Zo nee, dan gaat het je niet server-side lukken omdat het mac-adres naar mijn weten niet verder komt dan de eerste router die hij tegenkomt.

Client-side kan het denk ik alleen via ActiveX in Internet Explorer, en missschien via XPCom in Firefox (maar hoe je daar vanuit een normale webpagina toegang tot krijgt... ik denk niet dat dat zonder de browser zelf aan te passen of te voorzien van een plugin wil)

Waar heb je het mac-adres voor nodig? Misschien is er een ander alternatief.
 
Matthias R

Matthias R

26/08/2009 08:24:00
Quote Anchor link
@Jemler,
Het mac-adres zal toch wel verzonden worden naar de webbrowser,
net zoals het IP verzonden word zou ik denken..
of het moet uit het IP te halen zijn,
Maar ik heb al een voorbeeld gezien waar dit gedaan word dus het moet mogelijk zijn..
 
Jelmer -

Jelmer -

26/08/2009 17:48:00
Quote Anchor link
@Matthias: ik ben erg benieuwd naar je voorbeeld. Voor zover ik het nut van een router begrijp wordt je hele thuisnetwerk dankzij de router voor internet gezien als één toegangspunt. De router zorgt ervoor dat antwoorden op uitgaande requests weer bij de juiste computer in het netwerk terecht komen, en ook dat requests van buiten bij de goeie computer aankomen (waar NAPT weer voor is) Als het mac-adres meegestuurd zou worden, waarom zouden programma's als bittorrent en webservers dan nog poorten geforward willen hebben?
 
Lex Nonavailable

Lex Nonavailable

17/07/2010 11:56:46
Quote Anchor link
euh, sry dat ik dit zegn maar ik krijg geen macadres via deze functie? enkel een ipadres, remote_addr is een functie die het IPadres toont van de client?

ook hangt het ipadres niet vast aan het macadres, een ip krijg je van je ISP, een macadres is het fysiek adres van je netwerkkaart.

EDIT: ik zie al wss waar het probleem kan zitten, ben niet zeker, maar ik test op WAMP server, geen linux dus, dus die which arp werkt niet.
Gewijzigd op 17/07/2010 12:00:22 door Lex Nonavailable
 
Niels K

Niels K

17/07/2010 12:11:25
Quote Anchor link
Als je deze post leest, zie je dat het wel kan, maar alleen in internet exploder

http://www.qualitycodes.com/tutorial.php?articleid=19&title=MAC-Address-Using-WMI-on-Internet-Explorer

En in linux kan je dus een de exec command uitvoeren en dan pingen naar het adres BV:

ping 127.0.0.1 && arp -a
Gewijzigd op 17/07/2010 12:13:25 door Niels K
 
P Lekensteyn

P Lekensteyn

17/07/2010 19:16:00
Quote Anchor link
Waarvoor moet je het MAC adres weten?
 
Aad B

Aad B

17/07/2010 20:47:15
Quote Anchor link
in IE alleen als aan 3 voorwaarden voldaan wordt waarvan eentje het installeren van WMI scripting library op de client is. Dat heeft een willekeurige client niet geinstalleerd. Het lijkt mij dat je de opdracht om het MAC address op te slaan wel kan vergeten. Tenzij het een intern bedrijfsnetwerkje is natuurlijk waar je op elke peecee eerst even de WMI scripting library installeert en terwijl je dat doet kan je meteen even het MAC address opschrijven ;)

Het uitvoeren van het arp command geeft de MAC adressen op de (apache)server:
Address HWtype HWaddress Flags Mask Iface
medusa ether 00:0A:5E:52:F3:FB C eth0
local.gateway ether 00:01:71:0F:95:F8 C eth0
192.168.1.250 ether 00:11:41:02:61:37 C eth0

en niet het MAC adres op web-browsende-client. Het voorbeeld aan het begin van deze topic zal dus steeds hetzelfde MAC address opleveren....
Gewijzigd op 17/07/2010 20:58:14 door Aad B
 
P Lekensteyn

P Lekensteyn

17/07/2010 22:07:03
Quote Anchor link
IE is gewoon een bug.

Je zou met iptables elke request op HTTP kunnen loggen, en m.b.v. REMOTE_PORT en REMOTE_ADDR het MAC adres eraan koppelen, maar daarbij creeër je heel veel overhead.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.