Se colocaran ejercios para practicar de codigobit
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.0 KiB

  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->getPassword($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 getProfiles()
  50. {
  51. $result = Process::run('netsh wlan show profile');
  52. $salidaprofiles = $result->output();
  53. //$salidaprofiles = file_get_contents('profiles.txt');
  54. $parseprofiles = explode("-------------------", $salidaprofiles);
  55. $parseprofiles = end($parseprofiles);
  56. $parseprofiles = explode("\n", trim($parseprofiles, "\n\r"));
  57. $profiles = [];
  58. foreach ($parseprofiles as $profile) {
  59. $profiles[] = trim(str_replace(' Perfil de todos los usuarios : ', '', $profile));
  60. }
  61. return $profiles;
  62. }
  63. public function getPassword($profile)
  64. {
  65. $result = Process::run("netsh wlan show profile \"{$profile}\" key=clear");
  66. $salidapassword = $result->output();
  67. //$salidapassword = file_get_contents('prueba.txt');
  68. $parsepassword = explode('--------------------------', $salidapassword);
  69. $parsepassword = end($parsepassword);
  70. $parsepassword = explode("Configuraci", trim($parsepassword, "\n"));
  71. $parsepassword = current($parsepassword);
  72. $parsepassword = trim($parsepassword);
  73. $parsepassword = explode("\n", $parsepassword);
  74. $parsepassword = str_replace(' Contenido de la clave : ', '', end($parsepassword));
  75. return $parsepassword;
  76. }
  77. /**
  78. * Define the command's schedule.
  79. *
  80. * @param \Illuminate\Console\Scheduling\Schedule $schedule
  81. * @return void
  82. */
  83. public function schedule(Schedule $schedule): void
  84. {
  85. // $schedule->command(static::class)->everyMinute();
  86. }
  87. }