Как определить имя хоста, связанное с IP-адресом в сети?

Скрипт работает правильно, когда выдает ошибку -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 --.
11
20.11.2019, 15:42
2 ответа

Набор протоколов 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...
18
27.01.2020, 19:58

В Linux вы можете использовать digили host. Пример:

dig -x 192.0.2.1

host 192.0.2.1

В Windows вы можете использовать ping -aвот так:

ping -a 192.0.2.1
0
27.01.2020, 19:58

Теги

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