Projet

Général

Profil

« Précédent | Suivant » 

Révision 53b801b7

Ajouté par Thomas Noël il y a plus de 9 ans

add cp_disconnect command (php)

Voir les différences:

usr/local/univnautes/sp/cp_disconnect
1
#!/usr/local/bin/php -f
2
<?php
3

  
4
/*
5
 * cp_allow cpzone=.... ip=... username=... [mac=...] [attrs=...] ...
6
 * output on stdout: sessionid
7
 */
8

  
9
global $cpzone;
10

  
11
$ip = $cpzone = null;
12

  
13
array_shift($argv);
14
foreach ($argv as $arg) {
15
        list($name, $value) = explode('=', $arg, 2);
16
        switch($name) {
17
                case 'ip':
18
                        $ip=$value;
19
                        break;
20
                case 'cpzone':
21
                        $cpzone=$value;
22
                        break;
23
        }
24
}
25

  
26
// check IP format (ipv4 only)
27
if (! preg_match( '/^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/', $ip)) { 
28
        exit(2);
29
}
30

  
31
// check if cpzone is defined
32
if ( $cpzone == null ) {
33
        exit(4);
34
}
35

  
36
require("captiveportal.inc");
37
$result = captiveportal_read_db("WHERE ip = '{$ip}'");
38
foreach ($result as $cpentry) {
39
    captiveportal_disconnect_client($cpentry[5]);
40
}
41

  
42
?>

Formats disponibles : Unified diff