标题: [网络工具] 批处理获取本机IP(局域网)及MAC地址 [打印本页]
作者: youxi01 时间: 2008-1-6 08:30 标题: 批处理获取本机IP(局域网)及MAC地址
无聊之作...- ::==================批处理获取本机IP(局域网)及MAC地址==============
- ::code by youxi01@bbs.bathome.net 2008-1-5
- @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
复制代码
作者: 家园 时间: 2008-9-2 12:03 标题: 谢谢楼主!
有了这个,往后我维护网络就方便多了
作者: borat 时间: 2008-9-23 19:25
不错,不错,对我来说比较实用!!!
作者: testboy 时间: 2008-10-15 10:40
请问如何设置获取如 PPPoE链接的IP地址?
这个命令好像默认只能获取第一个网卡连接IP
作者: gs133790 时间: 2008-10-24 10:54
有点看不懂,到底上面的批处理在干什么。
作者: lxj 时间: 2008-10-31 17:02
能不能替换掉mac,不用手工?
作者: sun 时间: 2008-11-9 01:42
有些不明白?????
作者: shao2bing 时间: 2008-11-9 03:33 标题: 提问
楼主能不能解释下set PH_addr=%PH_addr:*:=%
set IP_addr=%IP_addr:*:=% 是什么意思
作者: mygoodboy 时间: 2008-11-9 08:15
楼主,可以再详细一点说明吗?我们是新手%_%
特别是for命令,一点都看不懂,呜呜~
作者: fiei 时间: 2009-1-3 15:32
若断开网线..那该如何写呢?
作者: sbkthhlichuan 时间: 2009-8-10 12:17
请问 要是想获取局域网内的所有IP和MAC地址呢 又该怎么写呢?
作者: keen 时间: 2009-8-10 12:52
原帖由 sbkthhlichuan 于 2009-8-10 12:17 发表
请问 要是想获取局域网内的所有IP和MAC地址呢 又该怎么写呢?
有问题可以单独发帖。
但我建议你还是先在本论坛搜索。
作者: leon52177 时间: 2009-8-27 10:52
楼主能不能解释下set PH_addr=%PH_addr:*:=%
set IP_addr=%IP_addr:*:=% 是什么意思
使用ipconfig/all命令就全都打印出来了,不管你有几块网卡
作者: keen 时间: 2009-8-27 11:42 标题: 回复 13楼 的帖子
set IP_addr=%IP_addr:*:=%
是变量替换,可以参看这个帖子:
http://bbs.bathome.net/viewthrea ... hlight=%CC%E6%BB%BB
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
)
)
红色部分,就是MAC(物理地址)
蓝色部分,就是判断条件,就是从ipconfig/all中,挑选出物理地址和IP地址。
作者: tuoout 时间: 2009-9-18 09:56
在windows 7中 没看出什么来。
作者: hantmite 时间: 2010-4-16 19:35
对于网络维护人员来说 可能这个更实用一些,代码简单,原理简单
@echo off
ipconfig/all >1.txt
type 1.txt
pause
del 1.txt
exit
作者: neorobin 时间: 2010-4-16 23:20 标题: 回复 16楼 的帖子
用了 type 就没必要重定向输出到文件了, 直接 ipconfig /all 就可以看结果了.
要输出到文件, 最好就在后面用 start 1.txt 用系统关联的图形界面文本编辑器来查看结果更方便
作者: crystalysoft 时间: 2010-4-23 14:02
是啊,标题党最浪费人时间去看帖子了,谢谢这个批处理大集体,我是来严肃学习的。
作者: zzpsongs 时间: 2012-3-23 17:39
在windows 7中 没看出什么来。
tuoout 发表于 2009-9-18 09:56
不同版本的系统中,'ipconfig /all'显示的内容是不一样的,所以要作出相应的字符串变化。
作者: verbs 时间: 2019-12-9 15:50
分享一下,获取本机 IP 的方法- for /f "usebackq tokens=4" %f in (`route print^|findstr 0.0.0.0.*0.0.0.0`)do @if "%f" neq "默认" echo %f
复制代码
PS: 也是参考 论坛大神的方法
作者: ai20110304 时间: 2019-12-22 11:41
回复 20# verbs
通过 路由表 默认路由取出的。如果 多网卡,将又有不一样
作者: 大道至简 时间: 2020-8-8 10:19
请问,在WIN7系统下,怎么没显示出具体IP和MAC的信息呢?
作者: Zhou. 时间: 2020-8-18 17:16
在windows 10中 没看出什么来。
作者: Batcher 时间: 2020-8-18 18:55
回复 23# Zhou.
第11行 ipconfig /all 这个命令在不同的系统里面得到的结果格式可能不同,根据实际情况调整一下代码即可。
作者: ddvc 时间: 2020-9-8 07:50
支持楼主,谢谢分享。
作者: Markting 时间: 2020-9-12 12:59
支持楼主,谢谢分享。
作者: riche0604 时间: 2020-12-2 00:32
好像没起作用
作者: 459500160 时间: 2021-1-25 16:16
我也来一个,看20年还有人回复,加上了外网的查询跟归属地,看看有没有大神再帮小弟精简下
@echo off
title 内外网IP查看工具-By NT
@echo.
mode con cols=38 lines=15
color F0
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a")
@echo 请将以下内容截图或
@echo 本工具生成在桌面的
call :ColorText Fc " IP信息"
@echo 发送给网管
@echo ════════════════════════════════════
for /f "delims=: tokens=2" %%i in ('ipconfig^|findstr "IPv4 地址"') do echo 内网IP为:%%i &echo 内网IP为:%%i >>IP信息.txt
for /f "delims=: tokens=2" %%m in ('ipconfig -all^|findstr "物理地址"') do echo 网卡地址:%%m &echo 网卡地址:%%m >>IP信息.txt
for /f "delims=: tokens=2" %%o in ('curl -s cip.cc^|findstr "IP"') do set ip=%%o&echo 外网IP为:%%o >>IP信息.txt
for /f "delims=: tokens=2" %%l in ('curl -s ipinfo.io^|findstr ""region""') do set ad=%%l&echo 所在地区:%%l >>IP信息.txt
@echo 外网IP为:%ip%
@echo 所在地为:%ad%
@echo ════════════════════════════════════
set /p=" 按任意键退出并删除"<nul
call :ColorText Fc "IP信息"
@echo 文档
pause>nul
for /r %%f in (IP信息.txt) do del %%f
goto :eof
:ColorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof
作者: huaker 时间: 2021-4-16 09:26
win7下直接闪退了
作者: Batcher 时间: 2021-4-16 10:33
回复 29# huaker
希望你在这个论坛学到的第一个技巧是:不要只说闪退 ^_^
请参考Q-01观察一下哪行代码在报错:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |