import os
# Заводим переменные
global wifi_targets
global my_interfaces
# Добавляем непустые строки
def put_data_in_array(bash_output, target_array, delimiter):
for line in bash_output.split(delimiter):
if line != "":
target_array.append(line.replace("\"",""))
# Метод выбора нужного пункта из массива
def make_choice(target_list, wifi_mode=0):
counter = 1
for line in target_list:
if wifi_mode != 0:
line = line.split("\n")[-2].replace("ESSID:","")
print(f"{counter}. {line}")
else:
print(f"{counter}. {line}")
counter += 1
input_target = input("\nВыберите из списка \n")
while int(input_target) > len(target_list) or int(input_target) < 1:
print("\nОшибка!")
print("Число должно быть в диапазоне от 1 до " + str(len(target_list)))
input_target = input("\nВыберите из списка \n")
else:
print(f"\nВаш выбор: {target_list[int(input_target) - 1]}")
input_target = target_list[int(input_target) - 1]
return input_target
# Массив для списка интерфейсов
my_interfaces = []
# Получаем список доступных интерфейсов
system_interfaces = os.popen("ifconfig | grep \": \" | cut -d \":\" -f 1").read()
# Добавляем их в массив
put_data_in_array(system_interfaces, my_interfaces, "\n")
# выбираем нужный интерфейс
print("Выберите интерфейс: ")
interface = make_choice(my_interfaces)
# Выбор режима выдачи списка целей
wifi_output_mode = input("В каком режиме отображать результаты сканирования?\n(1. Только названия сетей 2. Названия сетей, ESSID, дистанция)\n")
while int(wifi_output_mode) > 2 or int(wifi_output_mode) < 1:
wifi_output_mode = input("В каком режиме отображать результаты сканирования?\n(1. Только названия сетей 2. Названия сетей, ESSID, дистанция)\n")
# Получение данных из эфира
raw_targets = os.popen(f"iwlist {interface} scanning | grep ESSID -B5 | tr -d \" \"").read()
# Массив для списка целей
wifi_targets = []
# Получаем список доступных сетей
# Добавляем Названия сетей в массив
put_data_in_array(raw_targets, wifi_targets, "--")
# Предлагаем сделать выбор
print("Выберите цель: ")
if int(wifi_output_mode) == 1:
input_target = make_choice(wifi_targets, 1)
else:
input_target = make_choice(wifi_targets, 0)