Se colocaran ejercios para practicar de codigobit
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

Redes_wifi.php 3.6 KiB

il y a 1 an
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. namespace App\Commands;
  3. use Illuminate\Console\Scheduling\Schedule;
  4. use LaravelZero\Framework\Commands\Command;
  5. use Illuminate\Support\Facades\Process;
  6. class Redes_wifi extends Command
  7. {
  8. /**
  9. * The signature of the command.
  10. *
  11. * @var string
  12. */
  13. protected $signature = 'wifi {essid?} {--list}';
  14. /**
  15. * The description of the command.
  16. *
  17. * @var string
  18. */
  19. protected $description = 'Muestra las contraseñas guardadas de wifi';
  20. /**
  21. * Execute the console command.
  22. *
  23. * @return mixed
  24. */
  25. public function handle()
  26. {
  27. $essid = $this->argument('essid');
  28. //$profiles = $this->getProfiles();
  29. $profiles = $this->getProfilesRegex();
  30. if (isset($essid) && (!$this->option('list'))) {
  31. $this->line("[{$essid}] ".$this->getPassword($essid));
  32. return 0;
  33. }
  34. foreach ($profiles as $profile) {
  35. $linea = "[{$profile}] ";
  36. if (!$this->option('list'))
  37. $linea .= $this->getPasswordRegex($profile);
  38. $this->line($linea);
  39. }
  40. }
  41. public function getProfilesRegex()
  42. {
  43. $result = Process::run('netsh wlan show profile');
  44. $salidaprofiles = $result->output();
  45. //$salidaprofiles = file_get_contents('profiles.txt');
  46. preg_match_all("/: \s*(.*)/", $salidaprofiles, $profiles);
  47. return $profiles[1];
  48. }
  49. public function getPasswordRegex($profile)
  50. {
  51. $result = Process::run("netsh wlan show profile \"{$profile}\" key=clear");
  52. $salidapassword = $result->output();
  53. if (str_contains($salidapassword, "No hay ninguna interfaz inalámbrica en el sistema.")) { //Esto evita que ejecute regex si hay fallo
  54. $this->error("Fallo al ejecutar comando de password");
  55. die();
  56. }
  57. //$salidapassword = file_get_contents('prueba.txt');
  58. preg_match("/Contenido de la clave\s*:\s*(\S+)/", $salidapassword, $password);
  59. return $password[1];
  60. }
  61. public function getProfiles()
  62. {
  63. $result = Process::run('netsh wlan show profile');
  64. $salidaprofiles = $result->output();
  65. //$salidaprofiles = file_get_contents('profiles.txt');
  66. $parseprofiles = explode("-------------------", $salidaprofiles);
  67. $parseprofiles = end($parseprofiles);
  68. $parseprofiles = explode("\n", trim($parseprofiles, "\n\r"));
  69. $profiles = [];
  70. foreach ($parseprofiles as $profile) {
  71. $profiles[] = trim(str_replace(' Perfil de todos los usuarios : ', '', $profile));
  72. }
  73. return $profiles;
  74. }
  75. public function getPassword($profile)
  76. {
  77. $result = Process::run("netsh wlan show profile \"{$profile}\" key=clear");
  78. $salidapassword = $result->output();
  79. //$salidapassword = file_get_contents('prueba.txt');
  80. $parsepassword = explode('--------------------------', $salidapassword);
  81. $parsepassword = end($parsepassword);
  82. $parsepassword = explode("Configuraci", trim($parsepassword, "\n"));
  83. $parsepassword = current($parsepassword);
  84. $parsepassword = trim($parsepassword);
  85. $parsepassword = explode("\n", $parsepassword);
  86. $parsepassword = str_replace(' Contenido de la clave : ', '', end($parsepassword));
  87. return $parsepassword;
  88. }
  89. /**
  90. * Define the command's schedule.
  91. *
  92. * @param \Illuminate\Console\Scheduling\Schedule $schedule
  93. * @return void
  94. */
  95. public function schedule(Schedule $schedule): void
  96. {
  97. // $schedule->command(static::class)->everyMinute();
  98. }
  99. }