Итак, на работе у нас есть несколько компьютеров, на которые мы должны загружать программное обеспечение, и обычно, когда я подключаю свой ноутбук к компьютеру с помощью кабеля Ethernet, я должен установить свой адрес IPv4 на 10.10.1.99
, потому что на компьютере обычно есть 10.10.1.101
в качестве IP-адреса я загружаю программное обеспечение на этот компьютер.Теперь иногда компьютер имеет неправильную предустановку IP-адреса, например 10.41.246.70
или 10.42.246.71
.
Поскольку у нас нет простого и быстрого способа проверить, какой IP-адрес у компьютера, я написал небольшой скрипт, который меняетсяIPv4 моего ноутбука на наиболее распространенные IP-адреса, которые обычно имеют компьютеры, и позволяют ему проверять эти IP-адреса: код выглядит так, и он проверяет около 8 IP-адресов:
cls
echo Searching.
netsh interface ip set address "Ethernet" static 10.10.1.99 255.255.255.0 >nul: 2>nul:
ping -w 4 -n 3 10.10.1.101
if !errorlevel!==0 (
set activeip=10.10.1.101
goto :ipfound
)
Теперь этот код обычноработает просто отлично, в 99% случаев это один из 8 известных нам IP-адресов.Проблема в том, что иногда вместо «Запрошено время ожидания» я получаю «Узел назначения недоступен», что по какой-то причине не является ошибкой, и когда я получаю Узел назначения недоступен, скрипт думает, что нашел правильный IP-адрес.Теперь есть способ обойти это, например, добавив что-то вроде:
if output == Destination Host Unreachable (goto next IP)
или есть способ сообщить сценарию, что целевой хост недоступен, также является ошибкой.
Спасибо всем, кто может помочь любым способом.