Решение не мое, а блогер по имени Fabio Iotti
.Престижность ему.
for /f "delims=[] tokens=2" %%a in ('ping -4 -n 1 %ComputerName% ^| findstr [') do set NetworkIP=%%a
echo Your IPv4 is: %NetworkIP%
Что мне понравилось для этого решения, помимо того, что это умный способ получить его, так это то, что оно выведет чистую переменную IP, так что вам не придется беспокоиться о перехватеstring.
Давайте посмотрим на это.
Когда будет запущен ping
, IP будет показан в скобках.Пинг вашего собственного компьютера с помощью %ComputerName%
заставит команду показать ваш собственный IP.
Наконец, широкие опции, которые findstr
позволяет использовать с подстановочными знаками, позволяют нам собирать информацию в скобках (помните[')
?), что приводит к чистой переменной, которая будет показывать только ваш IP.
Однако я не уверен, как это будет работать, если вы подключены через WiFi / LAN / USB / Cellular или любой другойинтернет-возможности;Как Windows обрабатывает IPv4 несколькими способами подключения?Я уверен, что это не будет проблемой, но я хотел бы проверить это.