Advertisement
Guest User

Untitled

a guest
Jul 18th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. <?php
  2.  
  3. /*incluir configuracion de freeradius (parametros, mysql,etc)*/
  4. require(dirname(__FILE__).'/config.php');
  5.  
  6. error_reporting(E_ERROR);
  7. ini_set("log_errors", 1);
  8. ini_set("error_log", "error_desconectar_log");
  9.  
  10. /*Dias hacia atras que se ejecutará el kikeo*/
  11. $diasAtras = 1;
  12.  
  13. if($diasAtras < 1 || !is_null($diasAtras)){
  14. $diasAtras = 1;
  15. }
  16.  
  17. $mysql = mysql_connect($freeradius_db_host, $freeradius_db_username, $freeradius_db_password);
  18. $conn = mysql_select_db($freeradius_db_database);
  19. if (!$conn) {
  20. error_log( "No se pudo conectar a la base de datos: " . mysql_error() . "\n" );
  21. die( "No se pudo conectar a la base de datos: " . mysql_error() . "\n" );
  22. }
  23. /*query para tomar en cuenta solamente los usuarios con cuenta suspendida, entre el dia actual y el dia de ayer*/
  24. $radcheck_q = mysql_query("SELECT username
  25. FROM radcheck
  26. WHERE id IN (
  27. SELECT MAX(id)
  28. FROM radcheck WHERE LOWER(attribute) = 'expiration'
  29. AND
  30. (CURDATE() = STR_TO_DATE(value, '%d %M %Y') OR DATE_ADD(CURDATE(), INTERVAL -".$diasAtras." DAY) <= STR_TO_DATE(value, '%d %M %Y'))
  31. GROUP BY username
  32. )");
  33.  
  34. if(mysql_num_rows($radcheck_q) > 0) {
  35. $radius_users = array();
  36. while($radcheck = mysql_fetch_array($radcheck_q)) {
  37. /*guardar ususarios con cuneta suspendida, resultado del query*/
  38. array_push($radius_users,$radcheck['username']);
  39. }
  40.  
  41. /*por cada ususario, intentamos desconectar via vpncmd la cuenta*/
  42. foreach($radius_users as $user) {
  43. exec('/usr/local/vpnserver/vpncmd 190.110.124.156 /SERVER /HUB:vpn /PASSWORD:vpnserver3 /CMD sessionlist | grep "Session Name" | awk -F \'|\' \'{print $2}\' | grep '.strtoupper($user).' | xargs /usr/local/vpnserver/vpncmd 190.110.124.156 /SERVER /HUB:vpn /PASSWORD:vpnserver3 /CMD sessiondisconnect',$salida);
  44.  
  45.  
  46. if(strtolower(trim($salida[count($salida)-2])) == 'sessiondisconnect command - disconnect session'){
  47. /*si todo esta ok, nada por ahora........*/
  48. } else {
  49. /*escribir error en log*/
  50. error_log("Error al desconectar ususario: ".$user." - detalle error: \n\t ".print_r($salida));
  51. }
  52.  
  53. }
  54.  
  55. } else {
  56. echo "Ningun usuario disponible para desconectar.";
  57. }
  58.  
  59. mysql_close($mysql);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement