Получить весь зарезервированный IP-адрес для маршрутизатора [closed]

У меня есть компьютер, на котором пользователь может установить статический IP-адрес. Проблема в том, что каким-то образом другой компьютер имеет такой же IP-адрес, который установлен как статический, но в данный момент не подключен к сети.

После того, как оба компьютера будут подключены, возникнет проблема, и попробуйте, чтобы оба компьютера имели одинаковый IP-адрес в одной сети.

У меня вопрос: можно ли получить все IP-адреса, которые используются от маршрутизатора, или их можно использовать в качестве статических IP-адресов в будущем?

Извините за мой нехороший язык.

Я использовал эту команду, но она возвращает только подключенные IP-адреса. Мне нужны все IP-адреса, которые уже установлены на маршрутизаторе:

sudo arp-scan --interface=wlan0 --localnet| awk "{print $1}"|tail -n +3|head -n -2
0
задан 13 June 2017 в 11:22

1 ответ

Хотя @Melebius уже упомянул, что это не характерно для Ubuntu, и необходимо задать вопрос на подходящем форуме. Однако я все еще попробую, помогают Вам здесь (пишущий сценарий, который должен быть приемлемым на этом форуме).

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

Для сценария сначала создайте conf файл, перечисляющий всего возможного дюйм/с, которого Вы подозреваете (один на строку), говорите pinglan.conf и вставленный в него $HOME/bin.

Затем запустите следующий скрипт:

#!/bin/bash

#< Configurable script to ping my LAN

if [ "$#" -ne 0 ]; then
   echo "Usage: `basename $0`" && exit 1
fi


_TEMP_FILE=$HOME/tmp/pinglan.$$

trap 'rm -f $_TEMP_FILE; tput reset;  exit 1' 1 2 3 15

clear

_GREEN=`tput setf 2`
_RED=`tput setf 4`
_BLUE=`tput setf 1`

while read line
do
  _IP_ADDR=`echo $line | awk -F : '{ print $1 }'`
  _HOST_NAME=`echo $line | awk -F : '{ print $2 }'`
  ping -w 1 $_IP_ADDR > $_TEMP_FILE 2>&1
  grep "bytes from" $_TEMP_FILE > /dev/null 2>&1
  if [ "$?" -eq 0 ]; then # host is up
    echo "${_GREEN}$_HOST_NAME ($_IP_ADDR) is UP"
  else
    echo "${_RED}$_HOST_NAME ($_IP_ADDR) is DOWN"
  fi
    done < $HOME/bin/pinglan.conf

echo -e "\n\n${_BLUE}Press enter to continue..."
read dummy
# tput reset

rm -f $_TEMP_FILE
exit 0

Примечание:

Этот код не является моим оригиналом, но был со мной в течение многих лет, и я изменил к своим потребностям! Не имейте первоисточника. Благодаря o

Надеюсь, это поможет!

- Mike

2
ответ дан 13 June 2017 в 11:22

Другие вопросы по тегам:

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