Différences entre les versions de « Scanner une plage d'adresses ip - PHP »

De UnixManiax
Aller à la navigation Aller à la recherche
(Page créée avec « Category:PHP =Principe= Voici une page php qui scanne une plage d'adresses ip avec deux boucles "for", en utilisant les outils ping, sed, grep, nslookup et nmap pré... »)
 
(Aucune différence)

Version actuelle datée du 16 septembre 2013 à 15:31


Principe

Voici une page php qui scanne une plage d'adresses ip avec deux boucles "for", en utilisant les outils ping, sed, grep, nslookup et nmap présents sur le système d'exploitation du serveur (un unix donc).

Ce script va faire un ping sur toutes les adresses ip des réseaux 10.36.208.2 à 10.36.210.254, avec une liste d'exclusion. Le résultat du ping sera affiché dans un tableau avec un message "ping ok" sur fond vert quand c'est ok, et un message "Server seems down !!" sur fond rouge quand le ping ne passe pas. Il y a également une colonne avec le nom DNS correspondant à d'adresse ip.

Ce script a été testé sur Mandriva 2008.1 et FreeBSD 7.0.


Le code

<?php
echo "<HTML><BODY>";

$exclude_list = array ("10.36.208.2", "10.36.208.3", "10.36.208.4");
echo '<table border=1 style="font-size: 10pt">';
echo '<tr><td>ip</td><td>nom</td><td>état</td></tr>';
for ($RESEAU = 208; $RESEAU <= 210; $RESEAU=$RESEAU+1)
{
    for ($IP = 2; $IP < 255; $IP = $IP+1)
    {
        if (!in_array("10.36.".$RESEAU.".".$IP, $exclude_list))
        {
            echo "<tr>";
            echo "<td>10.36.$RESEAU.$IP</td>";
            echo "<td>";
            system('nslookup 10.36.'.$RESEAU.'.'.$IP.'|grep name|sed "s/.*name = //g"|sed "s/.tlt.*//g"');
            echo " </td>";
            echo "<td>";
            system('if [ `nmap -T4 -p22,23 10.36.'.$RESEAU.'.'.$IP.' | grep "Interesting ports on" | wc -l` -eq 1 ]; then echo "<span style="background-color:#00ff00">Ping ok</span>"; else echo "<span style="background-color:#ff0000">Server seems down  !!</span>"; fi');
            echo "</td>";
            echo "</tr>";
        }
    }
}
echo "</table>";

echo "</BODY></HTML>";
?>