<?php
  if($_POST['formSubmit'] == "Submit")
  {
    $varMac = $_POST['formMac'];
    $varName = $_POST['formName'];
    $varIP  = $_POST['formIP'];
    $varNS  = $_POST['formNS'];
  }

// test per vedere se recupero correttamente IP e MAC address
$sessionid=session_id();
//IP di provenienza
$ip=$_SERVER['REMOTE_ADDR'];
//username su tonelli.dm.unipi.it
$username=$_SERVER['REMOTE_USER'];
$pcname=false;
$macAddr=false;
#run the external command, break output into lines
$macAddr=`/srv/www/BBB/arpget  $ip`;
$pcname=`/srv/www/BBB/estrainome  $ip`;

//$arp=`/usr/sbin/arp -a $ip`;
//// echo " $arp <P>";
//$lines=explode(" ", $arp);
//$macAddr = $lines[3]; // o MAC address o "entries"
//$name=`/usr/bin/host  $ip`;
////echo " $name <P>";
//$lines=explode(" ", $name);
//$pcname = end($lines);
// betti stesso non viene trovato da arp -a
// occorre mettere a mano il suo dato
if ($ip=="131.114.10.250") { $macAddr = "00:07:e9:04:b7:56"; } ;
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title> Verifica IP e MAC </title>
</head>
<body TEXT="#000000"  BGCOLOR="#c0c0c0">
<H3> Verifica IP e MAC </H3>
<HR>

<?php
echo "<P>";
print("Sei loggato con il nome di  <B>$username @ tonelli.dm.unipi.it</B> </b><BR>");
if ($pcname == "3(NXDOMAIN)") {
print("Il  tuo calcolatore <B>NON</B> ha un nome. Il tuo IP &egrave; <B>$ip</B><BR>");
} else {
print("Il nome del tuo calcolatore &egrave; <B>$pcname </B> Il tuo IP &egrave; <B>$ip</B><BR>");
}
if ($macAddr=="38:60:77:d5:4f:b9"){
print("Non sei sulla rete LAN del centro di calcolo di matematica<P>");
}
else{
print("Sei sulla LAN del centro di calcolo di matematica e il tuo MAC Address &egrave; <B> $macAddr </B> <P>");
$macupper=strtoupper($macAddr);
$macclean= preg_replace("/:/","",$macupper);
$posizione =`/usr/local/net-monitor/estrai.sh $macclean`;
$lines=explode(" ",$posizione);
print("<B>POSIZIONE di $macclean :</B>   <B>switch</B> numero <B>$lines[1]</B>  -  <B>porta</B> numero <B>$lines[2]</B>  -  <B>MAC</B> sulla stessa posizione: <B>$lines[3]</B>  ");

}
?>

<hr WIDTH="100%">
<P>
Guarda lo <A href="RETE.pdf">schema delle connessioni tra gli switch</A>: il numero di uno switch usato nella POSIZIONE &egrave; semplicemente formato dalle ultime due cifre del nome dello switch nello schema.
<P>
<hr WIDTH="100%">
<B>Localizza</B> un altro calcolatore <B>attivo ora</B> sulla nostra LAN in base al suo <B>MAC Address</B>:
<form action="index.php" method="post">
 
<input type="text" name="formMac" maxlength="50">
 
<input type="submit" name="formSubmit" value="Submit">
</form>
<?php

$macuuu=strtoupper($varMac);
$macc= preg_replace("/:/","",$macuuu);
$posss =`/usr/local/net-monitor/estrai.sh $macc`;
$linn=explode(" ",$posss);
print("<B>POSIZIONE di $macc :</B>   <B>switch</B> numero <B>$linn[1]</B>  -  <B>porta</B> numero <B>$linn[2]</B>  -  <B>MAC</B> sulla stessa posizione: <B>$linn[3]</B>  ");
?>
<hr WIDTH="100%">
<B>Localizza</B> un altro calcolatore <B>attivo ora</B> sulla nostra LAN in base al suo <B>IP</B>:
<form action="index.php" method="post">
<input type="text" name="formIP" maxlength="50">
<input type="submit" name="formSubmit" value="Submit">
</form>
<?php
if (!isset($varIP)) {
print("<B>POSIZIONE di () con MAC= :</B>   <B>switch</B> numero <B></B>  -  <B>porta</B> numero <B></B>  -  <B>MAC</B> sulla stessa posizione: <B></B>  ");
} else {
#run the external command, break output into lines
$nemo=`/bin/ping -c 1 -n $varIP`;
$varp=`/usr/sbin/arp -a $varIP`;
// echo " $varp <P>";
$lins=explode(" ", $varp);
$vmacAddr = $lins[3]; // o MAC address o "entries"
$vmacuuu=strtoupper($vmacAddr);
$vmacc= preg_replace("/:/","",$vmacuuu);
$vposss =`/usr/local/net-monitor/estrai.sh $vmacc`;
$vlinn=explode(" ",$vposss);
print("<B>POSIZIONE di ($varIP) con MAC=$vmacc :</B>   <B>switch</B> numero <B>$vlinn[1]</B>  -  <B>porta</B> numero <B>$vlinn[2]</B>  -  <B>MAC</B> sulla stessa posizione: <B>$vlinn[3]</B>  ");
}
?>
<hr WIDTH="100%">
<B>Localizza</B> un altro calcolatore <B>attivo ora</B> sulla nostra LAN in base al suo <B>nome</B>:
<form action="index.php" method="post">
<input type="text" name="formNS" maxlength="50"><B>.cs.dm.unipi.it</B>
<input type="submit" name="formSubmit" value="Submit">
</form>
<?php
if (!isset($varNS)) {
print("<B>POSIZIONE di .cs.dm.unipi.it () con MAC= :</B>   <B>switch</B> numero <B></B>  -  <B>porta</B> numero <B></B>  -  <B>MAC</B> sulla stessa posizione: <B></B>  ");
} else {
#run the external command, break output into lines
$varnn=`/usr/bin/host -t A $varNS`;
$vll=explode(" ",$varnn);
//echo $vll[3];
$nemo=`/bin/ping -c 1 -n $vll[3]`;
$vvarp=`/usr/sbin/arp -a $vll[3]`;
$vlll=explode(" ", $vvarp);
$vvmacAddr = $vlll[3]; // o MAC address o "entries"
$vvmacuuu=strtoupper($vvmacAddr);
$vvmacc= preg_replace("/:/","",$vvmacuuu);
$vvposss =`/usr/local/net-monitor/estrai.sh $vvmacc`;
$vvlinn=explode(" ",$vvposss);
print("<B>POSIZIONE di $varNS.dm.unipi.it ($vll[3]) con MAC=$vvmacc :</B>   <B>switch</B> numero <B>$vvlinn[1]</B>  -  <B>porta</B> numero <B>$vvlinn[2]</B>  -  <B>MAC</B> sulla stessa posizione: <B>$vvlinn[3]</B>  ");
}
?>
<hr WIDTH="100%">
<B> NOTA1: </B>a volte, per macchine poco attive, si ottiene il risultato riprovando una seconda volta dopo 30 o 60 secondi. 
<BR>
<B> NOTA2: </B>questo software interagisce con switch di diverse marche !
<hr WIDTH="100%">
</body>
</html>
