Hoi ik moet een simple pagina maken die via bepaalde macadressen benaderd kan worden.
Dus als het macadres erin staat moet het naar een link verwijzen .. zoniet dan moet het iets zeggen als forbidden ofzo.
Dit heb ik voor zover bij elkaar kunnen toveren :
<?php
#Retrieve the MAC address of the client device:
#In PHP, you can use the $_SERVER['REMOTE_ADDR'] variable to get the IP address of the client device.
#Then, you can use the arp command in PHP's exec() function to retrieve the MAC address associated with that IP address.

$ipAddress = $_SERVER['REMOTE_ADDR'];
$macAddress = exec("arp -a $ipAddress");

#Compare the retrieved MAC address with the allowed MAC addresses:
#Maintain a list of allowed MAC addresses in your PHP code or a database.
#Compare the retrieved MAC address with the allowed MAC addresses to determine if access should be granted.
$allowedMACAddresses = ['44:62:88:92:33:03', '11:22:33:44:55:66'];

if (in_array($macAddress, $allowedMACAddresses)) {
// Grant access to the webpage
echo '<p>Access</p>';

} else {
// Deny access to the webpage
echo '<p>Forbidden</p>';
}

?>
Zou iemand mij hiermee kunnen helpen ?
En wat is je exacte probleem?
Hoi het werkt niet ...
Ik heb ook helemaal geen verstand van php heb dit gevonden via chatpgp oid.
Als ik met de goede mac op die pagina komt dan zegt ie forbidden.
Het is de bedoeling dat wanneer het klopt er naar een link wordt doorverwezen.
ChatGPT is wel leuk, maar het slaat vaak de plank mis.
Je moet wel weten hoe je script werkt.

Kijk eens wat er in $macAddress zit? Echo het eens of haal het door var_dump().
Ik vermoed dat je nog een hoop fratsen moet uithalen om de output ervan uit te pluizen op het juiste MAC-adres.
Dank u wel voor uw reactie maar voor mij is dit eenmalig.
Ik ben meer van de schema's en solderen enzo ... van php heb ik echt geen kaas gegeten ... vandaar dat ik iemand zocht die mij kon helpen.
Daarom is mijn advies ook om stap voor stap bij het begin te kijken wat de inhoud is van exec(). Als het goed is moet dit in een array zitten.

Ik voeg even de $output variabele toe die beschreven staat op exec.


$macAddress = exec("arp -a $ipAddress",$output);
echo "De inhoud is:". print_r($output);
Dank u wel voor uw reactie maar ik heb echt geen idee wat u bedoeld.
Maar bedankt voor uw moeite.
Vriendelijke groet Rob
Ik heb het even wat simpeler gemaakt:
<?php
$ipAddress = $_SERVER['REMOTE_ADDR'];

$macAddress = exec("arp -a $ipAddress",$output);
echo "<h1>De inhoud is:</h1>";
echo "<pre>".print_r($output,true)."</pre>";
?>

Voer dit eens uit. Wat is de output?
Ok dus dit moet ik in het script zetten ?
Ik ga het proberen.
Dit zie ik dan :


De inhoud is:

Array
(
)
Dan is er blijkbaar geen uitvoer, net zoals je het in de commandline zou uitvoeren?
Welk besturingssysteem gebruik je? Linux?

Want ik zie op mijn Windows-installatie 'No ARP Entries Found.' staan als er niks gevonden is.
Ik gebruik windows 11.
Dit zie ik dus in mijn browser staan nadat ik het heb geupload.
Sorry voor de moeite ... ik dacht dat dit iets makkelijks was.

Reageren