Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/88: Рейтинг темы: голосов - 88, средняя оценка - 4.86
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071

Как получить список всех устройств, подключенных к WiFi

18.06.2020, 17:14. Показов 20380. Ответов 68
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как я могу получить список всех устройств, подключенных к WiFi встроенными средствами Python? И можно ли с помощью Python скажем, включить телевизор?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.06.2020, 17:14
Ответы с готовыми решениями:

Получить список ip устройств, подключенных к своей WIFI точке
всем привет! Входные данные: Android 11 и выше. Как получить список устройств (IP), подключенных к моей WIFI точке доступа? Я...

Список подключенных устройств по WIFI
Здравствуйте. Кто-нибудь подскажите как получить список устройств подключенных в сети WIFI. То есть например имя и ip.

Список устройств, подключенных к точке доступа wifi
Нужно получить список устройств, подключенных к точке доступа. Не знаю даже как подступиться к этому заданию. Может сможете дать какое-то...

68
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
18.06.2020, 18:34
https://pypi.org/project/wifi/#description
https://github.com/awwong1/wifi-scanner
И еще примерно 4 тысячи репозиториев на github: https://github.com/search?l=Py... positories

Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
встроенными средствами Python?
У Python нет (и не может быть) встроенных средств для подобной частной задачи. Их нет ни в одном языке программирования.
Поэтому все реализуется ручками.

Хотя, впрочем, на линуксе, судя по коду одной из библиотек, получить список Wi-Fi карт компьютера просто (но не тех девайсов, которые к ним подключены):
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def getWNICnames():
    """ Extract wireless device names from /proc/net/wireless.
        Returns empty list if no devices are present.
        >>> getWNICnames()
        ['eth1', 'wifi0']
    """
    device = re.compile('[a-z]{2,}[0-9]*:')
    ifnames = []
 
    fp = open('/proc/net/wireless', 'r')
    for line in fp:
        try:
            # append matching pattern, without the trailing colon
            ifnames.append(device.search(line).group()[:-1])
        except AttributeError:
            pass
    # if we couldn't lookup the devices, try to ask the kernel
    if ifnames == []:
        ifnames = getConfiguredWNICnames()
 
    return ifnames
Но на винде нет procFS, чтоб читать оттуда всю системную инфу про девайсы.

Добавлено через 26 минут
P.S. А вообще для низкоуровневой работы с беспроводной инфраструктурой давно существует хакерский кроссплатформенный пакет Aircrack-ng(offsite), который встроен в Kali linux (возможно, в какие-то еще дистрибутивы).
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
18.06.2020, 19:30  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
https://pypi.org/project/wifi/#description
Он не работает на Windows.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
18.06.2020, 19:42
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
Он не работает на Windows.
Я взял первую случайную ссылку из несколько тысяч на гитхаб.
Второй - wifi-scanner - должен работать, так как является просто интерфейсом к кроссплатформенной сетевой либе scapy.
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
18.06.2020, 19:58  [ТС]
Garry Galler,
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
встроенными средствами Python
.

Добавлено через 15 секунд
Хотя бы с помощью requests.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
18.06.2020, 20:02
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
Хотя бы с помощью requests.
requests это http клиент (http - это верхний уровень модели OSI) - к сетевым девайсам работающим на нижних уровнях OSI отношения не имеет.
Wi-Fi протокол канального уровня - предпоследний в модели OSI, ниже только кабель с электрическими сигналами.
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
18.06.2020, 20:16  [ТС]
Garry Galler, решил делать через ctypes. Использую wlanapi.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
18.06.2020, 20:40
https://fraoustin.fr/old/python_wifi.html
1
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
18.06.2020, 20:44  [ТС]
Garry Galler, главная задача в том, что мне надо включить телевизор.

Добавлено через 19 секунд
И если можно отрисовать на нём что-нибудь.

Добавлено через 1 минуту
А потом, раз уж начали выключить телевизор
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
19.06.2020, 02:32
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
надо включить телевизор... И если можно отрисовать на нём что-нибудь.
Какой смысл браться за задачи, в которых вы ничего не понимаете?
Если вы не были в курсе на каком уровне работает Wi-FI, то как вы сможете что-то передать устройству не зная базовых основ?
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
19.06.2020, 10:33  [ТС]
Garry Galler, а где можнот узнать про wifi и как работать на python с wifi?

Добавлено через 1 час 5 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import ctypes
import ctypes.wintypes as wintypes
 
wlanapi = ctypes.windll.wlanapi;
 
def customresize(array, new_size):
    return (array._type_ * new_size).from_address(ctypes.addressof(array))
 
class GUID(ctypes.Structure):
    _fields_ = [
            ('Data1', ctypes.c_ulong),
            ('Data2', ctypes.c_ushort),
            ('Data3', ctypes.c_ushort),
            ('Data4', ctypes.c_ubyte*8),
        ]
class WLAN_INTERFACE_INFO(ctypes.Structure):
    _fields_ = [
            ("InterfaceGuid", GUID),
            ("strInterfaceDescription", ctypes.c_wchar * 256),
            ("isState", ctypes.c_uint)
        ]
class WLAN_INTERFACE_INFO_LIST(ctypes.Structure):
    _fields_ = [
            ('NumberOfItems', wintypes.DWORD),
            ('Index',         wintypes.DWORD),
            ('InterfaceInfo', WLAN_INTERFACE_INFO * 1),
        ]
DOT11_SSID_MAX_LENGTH = 32
class DOT11_SSID(ctypes.Structure):
    _fields_ = [
            ("SSIDLength", ctypes.c_ulong),
            ("SSID",       ctypes.c_char * DOT11_SSID_MAX_LENGTH)
        ]
WLAN_MAX_PHY_TYPE_NUMBER = 0x8
class WLAN_AVAILABLE_NETWORK(ctypes.Structure):
    _fields_ = [
            ("ProfileName",                 ctypes.c_wchar * 256),
            ("dot11Ssid",                   DOT11_SSID),
            ("dot11BssType",                ctypes.c_uint),
            ("NumberOfBssids",              ctypes.c_ulong),
            ("NetworkConnectable",          ctypes.c_bool),
            ("wlanNotConnectableReason",    wintypes.DWORD),
            ("NumberOfPhyTypes",            ctypes.c_ulong),
            ("dot11PhyTypes",               ctypes.c_uint * WLAN_MAX_PHY_TYPE_NUMBER),
            ("MorePhyTypes",                ctypes.c_bool),
            ("wlanSignalQuality",           ctypes.c_ulong),
            ("SecurityEnabled",             ctypes.c_bool),
            ("dot11DefaultAuthAlgorithm",   ctypes.c_uint),
            ("dot11DefaultCipherAlgorithm", ctypes.c_uint),
            ("Flags",                       wintypes.DWORD),
            ("Reserved",                    wintypes.DWORD)
        ]
class WLAN_AVAILABLE_NETWORK_LIST(ctypes.Structure):
    _fields_ = [
            ("NumberOfItems", wintypes.DWORD),
            ("Index",         wintypes.DWORD),
            ("Network",       WLAN_AVAILABLE_NETWORK * 1)
        ]
 
def get():
    try:
        index = int(input('Выберите сеть для подключения: ')) - 1;
    except:
        return get();
    if index < 0 or index >= len(wifi_networks):
        return get();
    return index;
 
version = wintypes.DWORD();
handle  = wintypes.HANDLE();
 
wlanapi.WlanOpenHandle(1, None, ctypes.byref(version), ctypes.byref(handle));
interfaces = ctypes.pointer(WLAN_INTERFACE_INFO_LIST());
wlanapi.WlanEnumInterfaces(handle, None, ctypes.byref(interfaces));
ifaces = customresize(interfaces.contents.InterfaceInfo,
                      interfaces.contents.NumberOfItems)
print('Доступные WiFi сети:')
wifi_networks = [];
for interface in ifaces:
    networks = ctypes.pointer(WLAN_AVAILABLE_NETWORK_LIST());
    wlanapi.WlanGetAvailableNetworkList(handle, ctypes.byref(interface.InterfaceGuid), 0, None, ctypes.byref(networks));
    nets = customresize(networks.contents.Network,
                        networks.contents.NumberOfItems)
    i = 0;
    for network in nets:
        i += 1;
        wifi_networks.append(network);
        print(i, '-', network.dot11Ssid.SSID.decode())
index   = get();
network = wifi_networks[index];
print('Выбранная сеть: ', network.dot11Ssid.SSID.decode())
Набросал программу, но почему то два раза выдаёт название моей сети.

Добавлено через 53 минуты
А что делает WlanConnect?

Добавлено через 20 минут
Как можно подключиться к другому устройству?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.06.2020, 14:39
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
олучить список всех устройств, подключенных к WiFi
Два способа, полностью разные, так как вопрос задан расплывчато.

1) подключиться к веб-мордочке роутера и стянуть данные оттуда (правильно и проще).

2) покурить маны по локальным сетям, понять зачем нужна маска сети и тупо широковещательно попинговать (отключено на уровне ядра). Или попинговать в цикле. Так можно будет найти IP телевизора. Кто-нибудь знает, ARP в wi-fi работает? Подключиться к API телевизора и делать с ним нехорошие штуки. Или, попробовать Wake-on-LAN.
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
19.06.2020, 14:46
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
ARP в wi-fi работает?
Если бы не работало, как бы ARP-Spoofing применяли?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.06.2020, 14:59

Не по теме:

Я как-то больше с eth знаком. Хотя вы правы, канальный уровень должен быть одинаковый



Тогда всё просто, зная МАС телевизора и сидя в одной подсетке с ним, пищим на всю сетку и получаем его IP.

Добавлено через 7 минут

Не по теме:

Вру



Добавлено через 39 секунд
Придётся пинговать всю сеть, а потом
Bash
1
arp -an
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
19.06.2020, 15:03  [ТС]
Рыжий Лис, Garry Galler, поичкал много вещей в гугле, и сформулировал точный вопрос: как получить локальные IP адреса, подключенных к WiFi устройств? Потом по IP я буду обращаться к самим устройствам.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.06.2020, 15:07
Пропинговать все адреса в сети

Или
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
широковещательно попинговать (отключено на уровне ядра)
Добавлено через 23 секунды
Предлагаю начать писать IP калькулятор

Добавлено через 44 секунды
Сетевой CIDR калькулятор
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
19.06.2020, 15:34  [ТС]
Рыжий Лис, к сожаления я знаю только что значит буквосочетание пинг вместе с понг.

Добавлено через 26 минут
Я вообще не понимаю как калькулятор может мне помочь.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.06.2020, 15:39
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
не понимаю как калькулятор может мне помочь.
Как минимум, вычислить размер подсетки (обычно, 256 - 2 = 254 компа).
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
19.06.2020, 17:41  [ТС]
Вот, сделал код, но он ничего не записывает в bssl:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
import time
 
from threading import Thread
 
def loading(x):
    while x[0]:
        for i in range(3 + 1):
            print('Loading' + '.' * i + ' ' * (3 - i), end='\r');
            time.sleep(0.5);
 
x = [True];
loading_t = Thread(target=loading, args=(x,));
loading_t.start();
 
import requests
import socket
 
response = requests.get('http://ifconfig.me/ip');
ip = response.text;
 
import ctypes
import ctypes.wintypes as wintypes
 
wlanapi = ctypes.windll.wlanapi;
 
def customresize(array, new_size):
    return (array._type_ * new_size).from_address(ctypes.addressof(array))
 
class GUID(ctypes.Structure):
    _fields_ = [
            ('Data1', ctypes.c_ulong),
            ('Data2', ctypes.c_ushort),
            ('Data3', ctypes.c_ushort),
            ('Data4', ctypes.c_ubyte*8),
        ]
DOT11_BSS_TYPE = ctypes.c_uint;
(dot11_BSS_type_infrastructure,
 dot11_BSS_type_independent,
 dot11_BSS_type_any) = map(DOT11_BSS_TYPE, range(1, 4))
class WLAN_INTERFACE_INFO(ctypes.Structure):
    _fields_ = [
            ("InterfaceGuid", GUID),
            ("strInterfaceDescription", ctypes.c_wchar * 256),
            ("isState", ctypes.c_uint)
        ]
class WLAN_INTERFACE_INFO_LIST(ctypes.Structure):
    _fields_ = [
            ('NumberOfItems', wintypes.DWORD),
            ('Index',         wintypes.DWORD),
            ('InterfaceInfo', WLAN_INTERFACE_INFO * 1),
        ]
DOT11_SSID_MAX_LENGTH = 32;
class DOT11_SSID(ctypes.Structure):
    _fields_ = [
            ("SSIDLength", ctypes.c_ulong),
            ("SSID",       ctypes.c_char * DOT11_SSID_MAX_LENGTH)
        ]
WLAN_MAX_PHY_TYPE_NUMBER = 0x8;
DOT11_PHY_TYPE = ctypes.c_uint;
dot11_phy_type_unknown      = 0;
dot11_phy_type_any          = 0;
dot11_phy_type_fhss         = 1;
dot11_phy_type_dsss         = 2;
dot11_phy_type_irbaseband   = 3;
dot11_phy_type_ofdm         = 4;
dot11_phy_type_hrdsss       = 5;
dot11_phy_type_erp          = 6;
dot11_phy_type_ht           = 7;
dot11_phy_type_IHV_start    = 0x80000000;
dot11_phy_type_IHV_end      = 0xffffffff;
class WLAN_AVAILABLE_NETWORK(ctypes.Structure):
    _fields_ = [
            ("ProfileName",                 ctypes.c_wchar * 256),
            ("dot11Ssid",                   DOT11_SSID),
            ("dot11BssType",                DOT11_BSS_TYPE),
            ("NumberOfBssids",              ctypes.c_ulong),
            ("NetworkConnectable",          ctypes.c_bool),
            ("wlanNotConnectableReason",    wintypes.DWORD),
            ("NumberOfPhyTypes",            ctypes.c_ulong),
            ("dot11PhyTypes",               DOT11_PHY_TYPE * WLAN_MAX_PHY_TYPE_NUMBER),
            ("MorePhyTypes",                ctypes.c_bool),
            ("wlanSignalQuality",           ctypes.c_ulong),
            ("SecurityEnabled",             ctypes.c_bool),
            ("dot11DefaultAuthAlgorithm",   ctypes.c_uint),
            ("dot11DefaultCipherAlgorithm", ctypes.c_uint),
            ("Flags",                       wintypes.DWORD),
            ("Reserved",                    wintypes.DWORD)
        ]
class WLAN_AVAILABLE_NETWORK_LIST(ctypes.Structure):
    _fields_ = [
            ("NumberOfItems", wintypes.DWORD),
            ("Index",         wintypes.DWORD),
            ("Network",       WLAN_AVAILABLE_NETWORK * 1)
        ]
'''WLAN_MAX_NAME_LENGTH = 256;
class WLAN_PROFILE_INFO(ctypes.Structure):
    _fields_ = [
            ("strProfileName", ctypes.c_wchar * WLAN_MAX_NAME_LENGTH),
            ("Flags",          wintypes.DWORD)
        ]
class WLAN_PROFILE_INFO_LIST(ctypes.Structure):
    _fields_ = [
            ("NumberOfItems", wintypes.DWORD),
            ("Index",         wintypes.DWORD),
            ("ProfileInfo",   WLAN_PROFILE_INFO * 1)
        ]'''
DOT11_MAC_ADDRESS = ctypes.c_ubyte * 6;
DOT11_RATE_SET_MAX_LENGTH = 126;
class WLAN_RATE_SET(ctypes.Structure):
    _fields_ = [
            ("RateSetLength", ctypes.c_ulong),
            ("RateSet",       ctypes.c_ushort * DOT11_RATE_SET_MAX_LENGTH)
        ]
class WLAN_BSS_ENTRY(ctypes.Structure):
    _fields_ = [
            ("dot11Ssid",             DOT11_SSID),
            ("PhyId",                 ctypes.c_ulong),
            ("dot11Bssid",            DOT11_MAC_ADDRESS),
            ("dot11BssType",          DOT11_BSS_TYPE),
            ("dot11BssPhyType",       DOT11_PHY_TYPE),
            ("Rssi",                  ctypes.c_long),
            ("LinkQuality",           ctypes.c_ulong),
            ("InRegDomain",           ctypes.c_bool),
            ("BeaconPeriod",          ctypes.c_ushort),
            ("Timestamp",             ctypes.c_ulonglong),
            ("HostTimestamp",         ctypes.c_ulonglong),
            ("CapabilityInformation", ctypes.c_ushort),
            ("ChCenterFrequency",     ctypes.c_ulong),
            ("wlanRateSet",           WLAN_RATE_SET),
            ("IeOffset",              ctypes.c_ulong),
            ("IeSize",                ctypes.c_ulong)
        ]
class WLAN_BSS_LIST(ctypes.Structure):
    _fields_ = [
            ("TotalSize",      wintypes.DWORD),
            ("NumberOfItems",  wintypes.DWORD),
            ("wlanBssEntries", WLAN_BSS_ENTRY * 1)
        ]
 
def get():
    try:
        index = int(input('Выберите сеть для подключения: ')) - 1;
    except:
        return get();
    if index < 0 or index >= len(wifi):
        return get();
    return index;
 
def reset():
    global text;
    response = requests.get(f'http://api.ipstack.com/{ip}?access_key=cf32e6af5bddd9eda69932c774459dce&language=ru&fields=country_name,region_name,city,location.languages', data={});
    data = response.json();
    text = 'Ваш IP: ' + ip + '\n'\
           'Ваша страна: ' + data['country_name'] + '\n'\
           'Ваш регион: ' + data['region_name'] + '\n'\
           'Ваш город: ' + data['city'] + '\n'\
           'Ваш язык: ' + data['location']['languages'][0]['native'] + '\n';
 
reset();
x[0] = False
loading_t.join();
print('Здравствуйте,', socket.gethostname() + '!');
while True:
    print('Что будем делать?');
    print('1. Я хочу получить информацию об IP.')
    print('2. Подключение к WiFi')
    print('3. Выход')
    print('4. Обновить данные')
    answ = input();
    if answ == '1':
        print(text, end='');
    elif answ == '2':
        version = wintypes.DWORD();
        handle  = wintypes.HANDLE();
 
        wlanapi.WlanOpenHandle(1, None, ctypes.byref(version), ctypes.byref(handle));
        interfaces = ctypes.pointer(WLAN_INTERFACE_INFO_LIST());
        wlanapi.WlanEnumInterfaces(handle, None, ctypes.byref(interfaces));
        ifaces = customresize(interfaces.contents.InterfaceInfo,
                              interfaces.contents.NumberOfItems)
        print('Доступные WiFi сети:')
        wifi = [];
        for interface in ifaces:
            networks = ctypes.pointer(WLAN_AVAILABLE_NETWORK_LIST());
            wlanapi.WlanGetAvailableNetworkList(handle, ctypes.byref(interface.InterfaceGuid), 0, None, ctypes.byref(networks));
            nets = customresize(networks.contents.Network,
                                networks.contents.NumberOfItems)
            i = 0;
            for network in nets:
                i += 1;
                wifi.append((network, interface));
                print(i, '-', network.dot11Ssid.SSID.decode())
        index   = get();
        network, interface = wifi[index];
        print('Выбранная сеть:', network.dot11Ssid.SSID.decode())
        '''profiles = ctypes.pointer(WLAN_PROFILE_INFO_LIST());
        wlanapi.WlanGetProfileList(handle, ctypes.byref(interface.InterfaceGuid), 0, ctypes.byref(profiles));
        profs = customresize(profiles.contents.ProfileInfo,
                             profiles.contents.NumberOfItems);
        for profile in profs:
            print(profile.strProfileName)'''
        bss_list = ctypes.pointer(WLAN_BSS_LIST());
        wlanapi.WlanGetNetworkBssList(handle, ctypes.byref(interface.InterfaceGuid), ctypes.pointer(network.dot11Ssid), dot11_BSS_type_any, True, 0, bss_list);
        bssl = customresize(bss_list.contents.wlanBssEntries,
                            bss_list.contents.NumberOfItems)
        for bss in bssl:
            print(dir(bss))
    elif answ == '3':
        break;
    elif answ == '4':
        x = [True];
        loading_t = Thread(target=loading, args=(x,));
        loading_t.start();
        reset();
        x[0] = False;
        loading_t.join();
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.06.2020, 18:39
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
ip = response.text;
Ха-ха, а теперь прочитайте про серые адреса. IP и маску нужно брать из настроек сетевого интерфейса.

Добавлено через 23 минуты
https://pypi.org/project/netifaces/

Добавлено через 5 минут
https://scapy.net/ - правда требует админа для некоторых вещей.

Добавлено через 39 секунд
Python
1
2
3
4
5
6
7
for ip in range(0, 256):
    packet = IP(dst="192.168.0." + str(ip), ttl=20)/ICMP()
    reply = sr1(packet, timeout=TIMEOUT)
    if not (reply is None):
         print reply.dst, "is online"
    else:
         print "Timeout waiting for %s" % packet[IP].dst
Добавлено через 39 секунд
Python
1
ans, unans = sr(IP(dst="192.169.0.1-255")/ICMP(), timeout=2)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.06.2020, 18:39
Помогаю со студенческими работами здесь

Как получить имена всех устройств подключённых к COM портам?
Как получить имена всех устройств подключённых к COM портам?

Как получить ip адреса всех подключенных устройств к маршрутизатору через wi-fi?
Как получить перечень всех подключенных устройств через wifi? С проводной сетью все понятно, а вот с wifi возникает проблема не выводит...

Как получить список когда-либо подключенных USB устройств к ПК на windows в JAVA?
Нужно получить список usb устройств подключенных к пк за все время, с подробной информацией о каждом. Попытался использовать java4usb....

Wifi hotspot как получить список девайсов подключенных к телефону
Всем привет, ребята может кто сталкивался. Если я роздаю с девайса вайфай , может знает какие способы что-бы получить айпи и мак адреса...

Получить список устройств, подключенных к USB
Доброго времени суток. Пытаюсь получить список устройств подключенных к USB import java.io.UnsupportedEncodingException; import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period. Это. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru