3

私は周りを見回しましたが、バッチファイルでコンピューターのIPアドレスを取得するための社内のWindowsバージョンに依存しないソリューションを見つけることができないようです。私がやりたいことは、私が使用しているWindowsマシンに関係なく(win 7またはXP、または98で実行されているかどうか)、IPアドレスを把握して変数に簡単に保存できるようにしたいということですファッション。

ipconfig を使用して IPv4 アドレスを解析できますが、windows 7 は以前のバージョンとは少し異なるものを出力するため、最初に使用している windows のバージョンを特定してから、適切な文字列を探す必要があります。どんな助けでも素晴らしいでしょう!

4

4 に答える 4

7

XP プロ/ビスタ/7/8:

Windows XP 以降では、 を使用することをお勧めしWMICます。

@echo off
for /f "skip=1 delims={}, " %%A in ('wmic nicconfig get ipaddress') do for /f "tokens=1" %%B in ("%%~A") do set "IP=%%~B"
echo %IP%

98 / 2000 / XP ホーム:

@echo off
for /f "tokens=2* delims=:" %%A in ('ipconfig /all ^| find "IP Address"') do for /f "tokens=1" %%B in ("%%~A") do set "IP=%%~B"
for /f "tokens=2* delims=:" %%A in ('ipconfig /all ^| find "IPv4 Address"') do for /f "tokens=1" %%B in ("%%~A") do set "IP=%%~B"
echo %IP%

その他のコマンド

netsh interface ip show addresses

nbtstat -n | find "IpAddress:"

于 2013-05-29T15:25:09.347 に答える
6

これでうまくいくと思います:

@echo off
FOR /F "tokens=2,3" %%A IN ('ping %computername% -n 1 -4') DO IF "from"== "%%A" set "IP=%%~B"
echo %IP:~0,-1%
于 2013-05-29T15:56:20.493 に答える
1

GNU wgetを使用して、Windows のバージョンに依存しない実際のインターネット IP を取得します

@echo off&setlocal
for /f %%i in ('wget ident.me --output-document=- 2^>nul') do set "myRealIP=%%i"
if defined myRealIP (echo Your real IP is stored in %myRealIP%) else echo Error! No connection to the internet.
于 2013-05-29T16:53:30.090 に答える