Как легко обнаружить IP-адрес устройства в сети?

Нет; оба выражения разные.

[[a = ~ -? [0-9] +]] проверит, содержит ли a целое число в любом месте. Это может быть где угодно в строке; это не имеет значения.

но

С другой стороны, [[a = ~ ^ -? [0-9] + $]] проверяет, состоит ли a исключительно из целых чисел (с необязательным - as первый символ), потому что ^ - это начало проверяемой строки, а $ отмечает конец строки.

Это означает, что во втором выражении любые нечисловые числа в строке не будут совпадать.

4
22.07.2017, 04:56
1 ответ

Как обнаружить IP устройства в сети

Если есть простой инструмент, который я могу запустить на своем Archlinux и обнаружить его IP на других устройствах, таких как Android или ноутбук с Windows, я хотел бы знать.

К сожалению, на данный момент не существует отличного способа сделать это.

  • Вы можете установить avahi-daemon на устройство и Bonjour на Windows. Обычно предлагается установить более старую версию этого проприетарного сетевого программного обеспечения сторонних производителей. Включает ли он программу обновления apple? Обеспечивает ли программа обновления apple исправления безопасности для более простой в установке, но старой версии 2.02? Я уверен, что здесь ничего не может пойти не так.

    https://learn.adafruit.com/bonjour-zeroconf-networking-for-windows-and-linux/overview#microsoft-windows

    (Также задайте описательное имя хоста. В MDNS вам не нужно гарантировать уникальность имени хоста. На самом деле в спецификации MDNS говорится, что вы не "должны" делать его уникальным, добавляя случайное число или большой идентификатор типа MAC-адреса; считается, что это отпугивает пользователей без веской причины. sensor5 было бы разумно. Протокол автоматически разрешает конфликты, добавляя порядковые номера (с тире) к имени хоста MDNS.)

  • Вы можете установить Samba на устройство и использовать традиционное обнаружение IPv4 с NetBIOS через TCP. NetBIOS может быть отключен по умолчанию некоторыми корпоративными DHCP-серверами. http://searchenterprisedesktop.techtarget.com/blog/Windows-Enterprise-Desktop/NetBIOS-Tweak-May-Be-Needed-for-Win10-NAS-Access

    (NMB не стремится разрешать конфликты имен. Люди, генерирующие имена хостов автоматически, обычно добавляют последние несколько символов MAC-адреса, чтобы избежать этой проблемы).

  • В идеале вам нужен LLMNR, который является более современным протоколом, используемым Windows. systemd-resolved поддерживает его, но он не используется широко. Я считаю, что это достаточно простой, документированный стандарт, и поэтому вы можете найти самодостаточные реализации с открытым исходным кодом. Я не думаю, что они широко используются, но если кто-то делает это коммерчески - как насчет того, чтобы использовать это и сообщить о любых ошибках, пожалуйста :).

Если вы хотите поддерживать клиентов Linux, а также Windows, вы, конечно, можете поддерживать и MDNS, и LLMNR.

Настроить устройство, напрямую подключенное к ноутбуку через сетевой кабель

Можно предположить, что решение может быть таким, чтобы настроить устройство, напрямую подключенное к ноутбуку через сетевой кабель, и получить доступ к нему на веб-странице конфигурации устройства, а также таким, чтобы ноутбук был подключен к локальной сети, к которой подключено и устройство, и получить доступ к устройству, обнаружив его в сети или получив доступ к нему через альтернативный, экзотический и фиксированный адрес.

Какой вопрос следует изучить для решения этой проблемы? Есть ли общий подход, который люди используют для этого?

Я бы сказал, что второе по распространенности решение этой проблемы такое же, как и выше, за исключением того, что вы пропустили один прием.

Эта техника полезна, например, если устройство было настроено со статическим адресом, который теперь неизвестен.

Решение состоит в том, чтобы предусмотреть кнопку "восстановления" (возможно, утопленную и требующую развернутой скрепки для нажатия). Вы загружаете устройство в режиме восстановления, где оно использует специальный фиксированный IP-адрес. Затем вы можете подключиться к известному адресу (используя прямой кабель и вручную установив адрес вашего ноутбука в той же подсети) и перенастроить устройство.

2
27.01.2020, 20:50

Теги

Похожие вопросы