<?php include_once "config.php"; ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>lanScan</title> <link rel="icon" href="favicon.ico" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/fomantic-ui@2.9.3/dist/semantic.min.css" /> <link rel="stylesheet" type="text/css" href="style.css" /> <style> body { background-image: url(bg.jpg); background-size: cover; } body>.grid { height: 100%; } .logo { margin-right: 0 !important; } </style> </head> <body> <div class="ui middle aligned center aligned inverted grid"> <div class="column" style="max-width: 450px;"> <h2 class="ui inverted teal fluid image header logo"> lan<?php include 'logo.svg'; ?>can </h2> <?php if (isset($errorMessage)) { ?> <div class="ui negative message"> <i class="close icon"></i> <div class="header">Erreur</div> <p><?= $errorMessage ?></p> </div> <?php } ?> <form id="scanForm" class="ui large form initial inverted" action="scan.php" method="get"> <div class="ui left aligned stacked segment inverted"> <h4 class="ui header">Découvrir ou superviser un réseau</h4> <div class="inverted field"> <select id="lanSelect" name="lan" class="search clearable selection dropdown"> <option value=""><?= $_SERVER['REMOTE_ADDR']; ?>/24</option> <?php if (file_exists($SCANSDIR)) { foreach (scandir($SCANSDIR) as $filename) { if (substr($filename, -4) === '.xml') { $name = substr($filename, 0, -4); $name = str_replace("!", "/", $name); echo " <option value='$name'>$name</option>\n"; } } } ?> </select> </div> <div class="ui error message"></div> <button type="submit" class="ui fluid large teal labeled icon submit button"> <i class="satellite dish icon"></i>Scanner </button> </div> <a href="options.php">Options avancées</a> </form> </div> </div> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.9.2/semantic.min.js"></script> <script> $('#lanSelect').dropdown({ allowAdditions: true, clearable: true }) $('#scanForm').form({ fields: { lan: { identifier: 'lanSelect', rules: [{ type: 'regExp', value: /[a-zA-Z0-9._\/ \-]+/, prompt: "Les cibles peuvent être spécifiées par des noms d'hôtes, des adresses IP, des adresses de réseaux, etc.<br/>Exemples : <?= $_SERVER['REMOTE_ADDR']; ?>/24 <?= $_SERVER['SERVER_NAME']; ?> 10.0-255.0-255.1-254" }] } } }); scanForm.onsubmit = function(event) { if (this.checkValidity()) { scanForm.classList.add("loading") $.toast({ title: 'Scan en cours...', message: 'Merci de patienter', class: 'info', showIcon: 'satellite dish', displayTime: 0, closeIcon: true, position: 'bottom right', }) return true } else { event.preventDefault() this.reportValidity() } } </script> </body> </html