Разобрать строку между специальными символами и построить список - PullRequest
0 голосов
/ 08 сентября 2018

Я пытался создать скрипт, который выдаст устройства, подключенные к моей сети. Мой последний вопрос был проблемой с поиском элементов с селеном, но я нашел другой способ получить их. Теперь я получаю полную строку сведений обо всех устройствах, которые подключены к моей сети Wi-Fi. Это выглядит так:

@ @ pc/devicename1/ConnectedProtocol (usually 802.11)/Device mac address/DHCP/local ip adress/a random number that i don't want to use /another number that i don't want to use/ipv6 address/:ipv6::|pc/devicename1/ConnectedProtocol (usually 802.11)/Device mac address/DHCP/local ip adress/a random number that i don't want to use/another number that i don't want to use/ipv6 address/:ipv6 address::|@ 0@ 0|0|0|0@ 1@

Итак, обычный список устройств выглядит так:

@ @pc/android-d45cb2db4c2da/802.11/12:34:56:78:90:ab/DHCP/192.168.1.2/2/1/fe60::84c5:6de3:fe65:6bd8/:84c5:6de3:fe65:6bd8/::|pc/android-cd4b56add5/802.11/12:34:56:78:90:ab/DHCP/192.168.1.3/2/35/fe60::1547:bbb:fe69:8441/:2605:fff:fe97:9145/::@ 0@ 1|0|0|0@ 1@

Вывод должен быть таким:

  • Имя устройства: android-d45cb2db4c2da
  • Mac-адрес: 12: 34: 56: 78: 90: ab
  • Местный ip: 192.168.1.2
  • Протокол соединения: Wlan

А потом еще одно устройство. Как мне это сделать?

1 Ответ

0 голосов
/ 08 сентября 2018

Вы можете разделить исходную строку на более мелкие подстроки, содержащие информацию о каждом устройстве, а затем снова разделить, чтобы получить нужную информацию:

devices = "@ @pc/android-d45cb2db4c2da/802.11/12:34:56:78:90:ab/DHCP/192.168.1.2/2/1/fe60::84c5:6de3:fe65:6bd8/:84c5:6de3:fe65:6bd8/::|pc/android-cd4b56add5/802.11/12:34:56:78:90:ab/DHCP/192.168.1.3/2/35/fe60::1547:bbb:fe69:8441/:2605:fff:fe97:9145/::@ 0@ 1|0|0|0@ 1"
devices = devices.split("::|")
for device in devices:
    device = device.split("/")
    print("Device name: " + device[1])
    print("MAC address: " + device[3])
    print("Local IP: " + device[5])
    print("Connected protocol: " + device[2])
    print()

Выход:

Device name: android-d45cb2db4c2da
MAC address: 12:34:56:78:90:ab
Local IP: 192.168.1.2
Connected protocol: 802.11

Device name: android-cd4b56add5
MAC address: 12:34:56:78:90:ab
Local IP: 192.168.1.3
Connected protocol: 802.11

Примечание. Чтобы определить, используете ли вы WLAN, Ethernet или какой-либо другой протокол, лучше всего создать словарь с ключами стандартов именования IEEE, например, 802.11 и значениями типов протокола, например. WLAN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...