在win7和XP上获取IP地址

时间:2013-03-21 07:03:30

标签: batch-file cmd

我需要批处理文件来检查ip地址是空白还是丢失。有时批处理文件将在Windows 7上运行,有时在Windows XP上运行。所以我需要这种输出。

如果没有丢失或空白 “你的ip是%ip%,一切都很好

如果遗失或空白 “错误没有找到ip”

Connection-specific DNS Suffix  . : dxtnxx.naits.local
IP Address. . . . . . . . . . . . : 11.73.11.111
Subnet Mask . . . . . . . . . . . : 255.255.254.0
IP Address. . . . . . . . . . . . : fe80::21b:77ff:fec3:f95b%5
Default Gateway . . . . . . . . . : 10.11.11.1

2 个答案:

答案 0 :(得分:2)

试试这个:

@echo off &setlocal
for /f "tokens=2delims=[]" %%a in ('ping -n 1 -4 %computername% ^| find /i "%computername%"') do set "ip=%%a"
if "%ip%"=="127.0.0.1" set "ip="
if not defined ip (echo.Error No ip found) else echo.your ip is %ip%, Everything is ok
endlocal

答案 1 :(得分:0)

for /f "tokens=2 delims={}" %%I in (
    'wmic nicconfig where ipenabled^="TRUE" get ipaddress /format:list'
) do set "ip=%%~I"

if "%ip:~0,7%" equ "169.254" set ip=
if "%ip:~0,2%" equ "0." set ip=

if not defined ip (
    echo Error: No Internet access.
    exit /b 1
)
echo Your IP address is %ip%.  We're good to go.

正如mfm4aa所指出的,这个脚本不适用于XP Home,因为XP Home不包含wmic。不过,XP Pro应该没问题。

除了检查机器是否有IP地址外,此脚本还将检查IP地址是否为169.254自动配置地址,并相应地失败。