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.0 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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. }