Скрипт работает правильно, когда выдает ошибку -a 10
. Опция -a
не нуждается в параметре в этом скрипте. Вы должны использовать только -a
.
Сдвиг описан на справочной странице следующим образом:
shift [n]
The positional parameters from n+1... are renamed to $1.... Parameters represented by the numbers $# down to $#-n+1 are unset. n must be a non-negative number less than or equal to $#. If n is
0, no parameters are changed. If n is not given, it is assumed to be 1. If n is greater than $#, the positional parameters are not changed. The return status is greater than zero if n is greater
than $# or less than zero; otherwise 0.
Таким образом, в основном он отбрасывает -a и сдвигает оставшиеся аргументы, так что второй параметр будет равен $1 в следующем цикле.
--
также описано на справочной странице :
-- A -- signals the end of options and disables further option processing. Any arguments after the -- are treated as filenames and arguments. An argument of - is equivalent to --.
Набор протоколов zeroconf (Википедия)может предоставить эту информацию.
Наиболее известными реализациями являются AllJoyn (Windows и другие ), Bonjour (Apple ), Avahi (UNIX/Linux ).
Пример, показывающий список всего в локальной сети (в данном случае не очень):
avahi-browse --all --terminate
+ ens18 IPv6 Canon MG6650 _privet._tcp local
+ ens18 IPv4 Canon MG6650 _privet._tcp local
+ ens18 IPv6 Canon MG6650 Internet Printer local
+ ens18 IPv4 Canon MG6650 Internet Printer local
+ ens18 IPv6 Canon MG6650 UNIX Printer local
+ ens18 IPv4 Canon MG6650 UNIX Printer local
+ ens18 IPv6 Canon MG6650 _scanner._tcp local
+ ens18 IPv4 Canon MG6650 _scanner._tcp local
+ ens18 IPv6 Canon MG6650 _canon-bjnp1._tcp local
+ ens18 IPv4 Canon MG6650 _canon-bjnp1._tcp local
+ ens18 IPv6 Canon MG6650 Web Site local
+ ens18 IPv4 Canon MG6650 Web Site local
+ ens18 IPv6 SERVER _device-info._tcp local
+ ens18 IPv4 SERVER _device-info._tcp local
+ ens18 IPv6 SERVER Microsoft Windows Network local
+ ens18 IPv4 SERVER Microsoft Windows Network local
Более конкретно, вы можете использовать avahi-resolve-address
для преобразования адреса в имя.
Пример
avahi-resolve-address 192.168.1.254
192.168.1.254 router.roaima...
В Linux вы можете использовать dig
или host
. Пример:
dig -x 192.0.2.1
host 192.0.2.1
В Windows вы можете использовать ping -a
вот так:
ping -a 192.0.2.1