BASH Проверка IP-адреса - PullRequest
       24

BASH Проверка IP-адреса

0 голосов
/ 01 ноября 2011

Я работаю над сценарием оболочки BASH, где мне нужно иметь возможность проверить и узнать, вернулся ли IP-адрес с:

dig $HOSTNAME +short

находится в определенной подсети или нет. Например, если часть 192.168.10.x или 10.130.10.x, тогда z или do y.

Я не уверен, как манипулировать или проверять IP-адрес после того, как он сохранен в переменной, чтобы я мог построить логический тест, описанный выше.

Ответы [ 2 ]

1 голос
/ 01 ноября 2011

Если ваши подсети - полный класс C, то вы можете просто выполнить проверку подстроки:

if [ ${IP#192.168.10.*} == ${IP} -a ${IP#10.130.10.*} == ${IP} ]
then
    echo "not in either subnet"
else
    echo "in one of the subnets"
fi

Редактировать: Обратите внимание, что это, конечно, не подтверждает, что IP-адреса действительны, но это устраняет необходимостьдля внешних инструментов.

0 голосов
/ 02 ноября 2011

В итоге я использовал следующий код, чтобы заставить его работать:

if [[ "$IP" == *10.130.10.* || "$IP" == *192.168.10.* ]]; then
   mount code goes here
fi

Спасибо за помощь всем и объяснил мне что-то, что позволило мне больше узнать о скриптах.Это действительно ценится!

...