1

Я пытаюсь получить внешний IP-адрес сети, чтобы увидеть, находится ли он в той же сети, что и другие ПК, но мой сценарий не работает. Моя главная проблема заключается в следующем: что бы я ни делал, я не могу получить строку с внешним IP-адресом от nslookup myip.opendns.com resolver1.opendns.com Вот что у меня есть:

nslookup myip.opendns.com resolver1.opendns.com>IP
set nu1m=0
Setlocal EnableDelayedExpansion
for /F "tokens=*" %%A in  (IP) do (set /a nu1m+=1 & if !num!==6 set ip=%%A)
echo %ip% >Out.txt
EndLocal

Я пытался заменить %ip% на !ip! но что бы я ни делал, переменная ip пуста. Есть идеи, что я делаю не так?

1 ответ1

1

Вместо того, чтобы записывать вывод nslookup в файл, вы можете проанализировать его напрямую с помощью for /f как показано в этой версии, я повторяю здесь для упрощения поиска:

@Echo off
for /f "tokens=2 delims=: " %%A in (
  'nslookup myip.opendns.com. resolver1.opendns.com 2^>NUL^|find "Address:"'
) Do set ExtIP=%%A
Echo External IP is : %ExtIP%

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .