in realtà è abbastanza semplice 
su windows basta lanciare
e cercare tra le righe quelle contenente l'ip della macchina remota
codice:
Interfaccia: 192.168.0.123 --- 0xb
Indirizzo Internet Indirizzo fisico Tipo
1.2.3.4 00-11-22-33-44-55 dinamico
192.168.0.255 ff-ff-ff-ff-ff-ff statico
224.0.0.22 01-00-5e-00-00-16 statico
224.0.0.252 01-00-5e-00-00-fc statico
239.255.255.250 01-00-5e-7f-ff-fa statico
per esempio questa è la configurazione presente sulla mia macchina ... c'è anche altro, ma in realtà non interessa, basta qualcosa tipo
Codice PHP:
$matches = array();
// l'ip DEVE esserci, tranne se c'è qualche strano e/o assurdo problema al sistema operativo
if (preg_match('#mio-ip.+?([A-Z0-9\-]{17})#is', `arp -a`, $matches) == false)
{
die('Strano e assurdo problema nel sistema operativo!');
}
if ($matches[1] == '00-11-22-33-44-55')
{
echo 'ok, puoi accedere';
}
else
{
echo 'mi spiace per te, niente da fare!';
}
mentre su linux varia poco, il comando è
mentre l'output
codice:
[root@alpha ~]# arp -an
? (1.2.3.4) at 00:11:22:33:44:55 [ether] on eth0
l'espressione regolare può rimanere uguale, non dovrebbero esserci problemi