求批处理高手,一个获取IP的的问题。

::==================批处理获取本机IP(局域网)及MAC地址==============::codebyyouxi01@echooffsetlocal... ::==================批处理获取本机IP(局域网)及MAC地址==============
::code by youxi01
@echo off
setlocal enabledelayedexpansion
title 获取本机IP(局域网)及MAC地址@bbs.bathome.net
Rem '/*=========初始化设置=============*/
set "Space= "
set "PH_addr=%Space%Physical Address" %'/*-----物理地址-------*/%
set "IP_addr=%Space%IP Address" %'/*------IP地址(局域网)--------*/%
Rem ===========主程序===================
for /f "tokens=1,* delims=." %%i in ('ipconfig /all') do (
for %%a in (PH_addr IP_addr) do (
if "%%i"=="!%%a!" set %%a=%%j
)
)
Rem '/*===========对结果进行处理===========
set PH_addr=%PH_addr:*:=%
set IP_addr=%IP_addr:*:=%
Rem '/*===========结果输出===============
echo.
echo 你的网卡物理地址为:%PH_addr%
echo.
echo 你的IP(局域网)地址为:%IP_addr%
pause>nul

win7下不能输出,请帮忙看看是哪里出的问题或者帮忙完善一下。要求为读取到的ip地址能输出为%PH_addr%
展开
 我来答
百度网友fe71023
2014-11-17 · 超过73用户采纳过TA的回答
知道小有建树答主
回答量:221
采纳率:100%
帮助的人:96.4万
展开全部
这段代码有三行不具备通用性
set "Space= "
set "PH_addr=%Space%Physical Address" %'/*-----物理地址-------*/%
set "IP_addr=%Space%IP Address" %'/*------IP地址(局域网)--------*/%

1."Space= " 后面的空格数量在不同系统上数量不同 XP /win7/WIN10
2.Physical Address 在不同系统上简繁体英文等上名字也不同 比如简体中文上应该是“物理地址”
3.IP Address 同上 简体系统应该是xp上是IP地址但是 win7/win10上有IPv6协议时候你应该需要的是“IPv4 地址”

建议采用其他方法! 比如wmic,更简洁,通用

@echo off
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=1,* delims==" %%a in ('wmic NICCONFIG where "index='1'" get ipaddress^,macaddress /value') do (
set /a tee+=1
if "!tee!" == "3" echo 网卡IP = %%b
if "!tee!" == "4" echo 网卡MAC = %%b
)
pause
追问
非常感谢你的帮助,完美的解决了我的问题。谢谢。。
Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
qop_dob
2014-11-17 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:3981万
展开全部
::==================批处理获取本机IP(局域网)及MAC地址==============
@echo off
for /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr "IPv4"') do set localip=%%i
for /f "tokens=1,3 delims=," %%a in ('getmac /fo csv /v') do (
if %%a == "本地连接" set localmac=%%~b
)
echo 本地连接的IP为%localip%
echo 本地连接的MAC为%localmac%
pause

★满意请及时点击【采纳为满意回答】★您的采纳是我们的动力和鼓励★有问题欢迎追问或私信我★

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhucunw
2014-11-17 · TA获得超过328个赞
知道小有建树答主
回答量:718
采纳率:88%
帮助的人:203万
展开全部
bat不如vbs,试试这个脚本
将以下内容保存为vbs

strComputer = "."
Set objWMIService = GetObject _
("winmgmts:" & "!\\" & strComputer & "\root\cimv2")
Set colAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objAdapter in colAdapters
Wscript.Echo "Host name: " & objAdapter.DNSHostName
Wscript.Echo "Description: " & objAdapter.Description
Wscript.Echo "Physical address: " & objAdapter.MACAddress
If Not IsNull(objAdapter.IPAddress) Then
For i = LBound(objAdapter.IPAddress) To UBound(objAdapter.IPAddress)
Wscript.Echo "IP address: " & objAdapter.IPAddress(i)
Next
End If
If Not IsNull(objAdapter.IPSubnet) Then
For i = LBound(objAdapter.IPSubnet) To UBound(objAdapter.IPSubnet)
Wscript.Echo "Subnet: " & objAdapter.IPSubnet(i)
Next
End If
If Not IsNull(objAdapter.DefaultIPGateway) Then
For i = LBound(objAdapter.DefaultIPGateway) To UBound(objAdapter.DefaultIPGateway)
Wscript.Echo "Default gateway: " & objAdapter.DefaultIPGateway(i)
Next
End If
Wscript.Echo "DHCP server: " & objAdapter.DHCPServer
If Not IsNull(objAdapter.DNSServerSearchOrder) Then
For i = LBound(objAdapter.DNSServerSearchOrder) To UBound(objAdapter.DNSServerSearchOrder)
Wscript.Echo "DNS server: " & objAdapter.DNSServerSearchOrder(i)
Next
End If
Next
更多追问追答
追问
我要用到%PH_addr%做下一个处理。。。
我要用到%PH_addr%做下一个处理。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式