无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 15576|回复: 49
打印 上一主题 下一主题

[分享] 分享个获取有线网卡本地连接内网IP、子网掩码、网关的批处理

    [复制链接]
跳转到指定楼层
1#
发表于 2020-1-16 14:11:31 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 liuzhaoyzz 于 2022-10-9 10:48 编辑

两个方案保底,一个不行自动用另一个,如果系统中精简了findstr命令,尝试用find命令。未测试一个网卡绑定多个ip的情况。

edit:已更换为plusv方案,感谢分享 获取 内网 IP、子网掩码、网关的 EXE 文件 - 脚本讨论区 - 无忧启动论坛 - Powered by Discuz! http://wuyou.net/forum.php?mod=viewthread&tid=418506

@echo off & setlocal enabledelayedexpansion
rem 获取ip、网关、子网掩码:
rem 如果系统中有route命令,优先采用方案1:
for /f "tokens=3,4" %%a in ('route print^|findstr /RC:"0.0.0.0          0.0.0.0.*0$"') do (if not defined ip set "Gateway=%%a" & set "ip=%%b")
for /f "tokens=3,4" %%a in ('route print^|find "0.0.0.0          0.0.0.0"^|find " 10"') do (if not defined ip set "Gateway=%%a" & set "ip=%%b")
for /f "tokens=3,4" %%a in ('route print^|find "0.0.0.0          0.0.0.0"^|find " 20"') do (if not defined ip set "Gateway=%%a" & set "ip=%%b")
for /f "tokens=2" %%a in ('route print^|findstr "在链路上.*%ip%"') do (if not defined mask set "mask=%%a" )
for /f "tokens=2" %%a in ('route print^|find "在链路上    %ip%"') do (if not defined mask set "mask=%%a" )

rem 如果系统中没有route命令,就采用方案2:
if defined ip goto :next
for /f "delims=[]" %%a in ('ipconfig^|find /n "以太网:"') do  if not defined n1 set /a n1=%%a+3
for /f "delims=[]" %%a in ('ipconfig^|find /n "本地连接:"') do  if not defined n1 set /a n1=%%a+3
set /a n2=%n1%+1
set /a n3=%n1%+2
for /f "skip=%n1%  tokens=2 delims=:" %%a in ('ipconfig') do  if not defined ip set ip=%%a
for /f "skip=%n2%  tokens=2 delims=:" %%a in ('ipconfig') do  if not defined mask set mask=%%a
for /f "skip=%n3%  tokens=2 delims=:" %%a in ('ipconfig') do  if not defined Gateway set Gateway=%%a
set ip=%ip: =%
set mask=%mask: =%
set Gateway=%Gateway: =%

:next
echo IP地址是:%ip%
rem for /f "tokens=1,2,3 delims=." %%a in ("%ip%") do  (if not defined IP_Pool set IP_Pool=%%a.%%b.%%c.2)
rem echo IP起始地址是:%IP_Pool%
echo 子网掩码是:%mask%
echo 网关是:%Gateway%
pause
exit /b



QQ截图20200116141042.jpg (18.3 KB, 下载次数: 147)

QQ截图20200116141042.jpg

NicInfo_Update_6-plusv.rar

42.65 KB, 下载次数: 175, 下载积分: 无忧币 -2

评分

参与人数 2无忧币 +6 收起 理由
studyggm + 1 赞一个!
有阴也有阳 + 5 很给力!

查看全部评分

44#
发表于 2020-3-4 09:02:21 | 只看该作者
感谢分享,嘿嘿
回复

使用道具 举报

43#
发表于 2020-3-3 16:20:47 来自手机 | 只看该作者
回复

使用道具 举报

42#
发表于 2020-3-2 09:22:28 | 只看该作者
学习了,好方法
回复

使用道具 举报

41#
发表于 2020-2-8 11:44:40 | 只看该作者
谢谢楼主分享资源,收藏。这是个好东东。
回复

使用道具 举报

40#
 楼主| 发表于 2020-2-8 08:48:07 来自手机 | 只看该作者
xiaoyouxi005 发表于 2020-2-7 15:56
想起前段时间单位里给每台电脑配置固定IP……

能否增加一个获取MAC地址?然后统一吧信息保存到一个txt中 ...

   前面几楼已经有人分享的有了吧?     
回复

使用道具 举报

39#
发表于 2020-2-7 15:56:24 | 只看该作者
想起前段时间单位里给每台电脑配置固定IP……

能否增加一个获取MAC地址?然后统一吧信息保存到一个txt中?

点评

前面几楼已经有人分享的有了吧?  详情 回复 发表于 2020-2-8 08:48
回复

使用道具 举报

38#
 楼主| 发表于 2020-1-18 15:01:49 来自手机 | 只看该作者
窄口牛 发表于 2020-1-18 13:44
wmic可以筛选网卡类型。

        wmic依赖太多,组件依赖太多的不可靠,如果依赖wmic,不如用第三方的。有些pe根本不支持wmic。   
回复

使用道具 举报

37#
发表于 2020-1-18 13:44:10 来自手机 | 只看该作者
wmic可以筛选网卡类型。

点评

wmic依赖太多,组件依赖太多的不可靠,如果依赖wmic,不如用第三方的。有些pe根本不支持wmic。  详情 回复 发表于 2020-1-18 15:01
回复

使用道具 举报

36#
发表于 2020-1-18 10:10:19 | 只看该作者
那你就自己改成 只SHOW出有線網卡的 就好啦
回复

使用道具 举报

35#
 楼主| 发表于 2020-1-18 00:19:45 来自手机 | 只看该作者
saiz 发表于 2020-1-17 19:32
它可以啊!!!
它可以啊!!!
它可以啊!!!

你分享的批处理似乎能够枚举所有的,我现在只想要有线网卡的怎么办?
回复

使用道具 举报

34#
发表于 2020-1-17 19:32:59 | 只看该作者
liuzhaoyzz 发表于 2020-1-16 21:48
我要的是抓取当前系统下的ip 掩码啊,用来配置pxe的

它可以啊!!!
它可以啊!!!
它可以啊!!!

点评

你分享的批处理似乎能够枚举所有的,我现在只想要有线网卡的怎么办?  详情 回复 发表于 2020-1-18 00:19
回复

使用道具 举报

33#
发表于 2020-1-17 19:32:37 | 只看该作者
liuzhaoyzz 发表于 2020-1-16 21:48
我要的是抓取当前系统下的ip 掩码啊,用来配置pxe的

它可以啊!!!
回复

使用道具 举报

32#
 楼主| 发表于 2020-1-17 13:42:57 | 只看该作者
万能是不可能的,在一定条件、一定范围内使用还是可以的,比如简体中文下用,拿到繁体中文下或者英文版本下,就要做修改适配了,主要是改下查询的关键字。        
回复

使用道具 举报

31#
发表于 2020-1-17 12:49:29 | 只看该作者
有没有想过根据厂商mac地址确定网卡,好像以前用批处理提取ip地址怎么弄都不靠谱,不可能万能
win的api也烂
回复

使用道具 举报

30#
 楼主| 发表于 2020-1-17 11:17:03 | 只看该作者
是的,我比较懒散,不追求代码质量,能搞出来,对我来说就不错了。。。
回复

使用道具 举报

29#
发表于 2020-1-17 11:07:31 | 只看该作者
setlocal enabledelayedexpansion

利用好这个吧。批处理精华的就for和这个吧。
这2个掌握了,批处理代码结构,处理会很整洁直观。
回复

使用道具 举报

28#
 楼主| 发表于 2020-1-17 08:40:11 | 只看该作者
liuzhaoyzz 发表于 2020-1-17 08:16
setlocal enabledelayedexpansion是习惯性加上去的。

chcp 437切换到英文显示,似乎有乱码啊?如果用E ...

chcp 65001,不能显示网卡类型,我要提取的是有线网卡,看不出来

chcp936则可以显示网卡类型,显示有线网卡,无线网卡。


回复

使用道具 举报

27#
 楼主| 发表于 2020-1-17 08:16:02 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-1-17 08:35 编辑
slore 发表于 2020-1-16 23:57
既然启用延缓环境变量,为什么不用?直接一次ipconfig处理完,而不是调用5次。

setlocal enabledelayedexpansion是习惯性加上去的。

chcp 437切换到英文显示,似乎有乱码啊?如果用Ethernet adapter作为关键字,似乎有很多结果,处理起来麻烦,不知道倒底哪个是需要的。


一次处理完似乎挺好的,的确有优化改进的空间,但我不知道具体怎么处理。

哦,发现个问题,似乎route print查询路由表,如果同时存在有线网卡和无线网卡都有ip的情况下,获取的值可能是对的,也可能不对,批处理要修改下才行。。。

点评

chcp 65001,不能显示网卡类型,[attachimg]409728[/attachimg] chcp936则可以显示网卡类型。 [attachimg]409729[/attachimg]  详情 回复 发表于 2020-1-17 08:40
65001试试。你适.配.器名字是中文了。  发表于 2020-1-17 08:35
回复

使用道具 举报

26#
 楼主| 发表于 2020-1-17 08:08:45 | 只看该作者
nttwqz 发表于 2020-1-16 23:13
记得本坛有个现成的工具,GUI界面的

因为我使用的场景是批处理调用,取ip、掩码写配置文件用的,GUI版本能够输出结果吗?
回复

使用道具 举报

25#
发表于 2020-1-16 23:57:08 | 只看该作者
  1. setlocal enabledelayedexpansion
复制代码

既然启用延缓环境变量,为什么不用?直接一次ipconfig处理完,而不是调用5次。


ipconfig命令,不同的系统关键词不同啊,比如有的叫做本地连接,有的可能被改名字了,route方案用的关键字有个“在链路上”,比“本地连接”改名字的稍微好点。“本地连接”不同的系统,名字不同,WIN7叫做“本地连接:”,WIN10似乎叫做“以太网:”,有点乱。

  1. chcp 437
  2. ipconfig

  3. chcp 936
  4. echo 获取IP:
复制代码

点评

setlocal enabledelayedexpansion是习惯性加上去的。 chcp 437切换到英文显示,似乎有乱码啊? [attachimg]409727[/attachimg] 一次处理完似乎挺好的,的确有优化改进的空间,但我不知道具体怎么处理。  详情 回复 发表于 2020-1-17 08:16
回复

使用道具 举报

24#
发表于 2020-1-16 23:13:07 来自手机 | 只看该作者
liuzhaoyzz 发表于 2020-1-16 21:45
不能获取另一个系统的,只能获取当前系统(可能是windows/pe)的

记得本坛有个现成的工具,GUI界面的

点评

因为我使用的场景是批处理调用,取ip、掩码写配置文件用的,GUI版本能够输出结果吗?  详情 回复 发表于 2020-1-17 08:08
回复

使用道具 举报

23#
发表于 2020-1-16 22:27:10 | 只看该作者
不错,很好,谢谢!
回复

使用道具 举报

22#
 楼主| 发表于 2020-1-16 21:49:05 来自手机 | 只看该作者
邪恶海盗 发表于 2020-1-16 20:08
那个无所谓吧,我们要的主要是值,前面显示友好度差点也没关系

关键字不对的话,抓取的值不对撒
回复

使用道具 举报

21#
 楼主| 发表于 2020-1-16 21:48:05 来自手机 | 只看该作者
saiz 发表于 2020-1-16 20:40
用這個比較好...
http://wuyou.net/forum.php?mod=viewthread&tid=335152
直接抓登錄檔記錄

我要的是抓取当前系统下的ip 掩码啊,用来配置pxe的

点评

它可以啊!!! 它可以啊!!! 它可以啊!!!  详情 回复 发表于 2020-1-17 19:32
它可以啊!!!  详情 回复 发表于 2020-1-17 19:32
回复

使用道具 举报

20#
 楼主| 发表于 2020-1-16 21:45:45 来自手机 | 只看该作者
yigeren 发表于 2020-1-16 19:28
这个脚本在PE系统中使用,不能获取目标系统(C盘)的本地连接信息吧

不能获取另一个系统的,只能获取当前系统(可能是windows/pe)的

点评

记得本坛有个现成的工具,GUI界面的  详情 回复 发表于 2020-1-16 23:13
回复

使用道具 举报

19#
发表于 2020-1-16 20:41:19 | 只看该作者
用這個比較好...
http://wuyou.net/forum.php?mod=viewthread&tid=335152
直接抓登錄檔記錄
就算硬碟壞了 用PE也可以抓到資料
回复

使用道具 举报

18#
发表于 2020-1-16 20:40:50 | 只看该作者
用這個比較好...
http://wuyou.net/forum.php?mod=viewthread&tid=335152
直接抓登錄檔記錄
就算硬碟壞了 用PE也可以抓到資料

点评

我要的是抓取当前系统下的ip 掩码啊,用来配置pxe的  详情 回复 发表于 2020-1-16 21:48
回复

使用道具 举报

17#
发表于 2020-1-16 20:08:09 | 只看该作者
liuzhaoyzz 发表于 2020-1-16 15:04
ipconfig命令,不同的系统关键词不同啊,比如有的叫做本地连接,有的可能被改名字了,route方案用的关键 ...

那个无所谓吧,我们要的主要是值,前面显示友好度差点也没关系

点评

关键字不对的话,抓取的值不对撒  详情 回复 发表于 2020-1-16 21:49
回复

使用道具 举报

16#
发表于 2020-1-16 19:28:35 | 只看该作者
这个脚本在PE系统中使用,不能获取目标系统(C盘)的本地连接信息吧

点评

不能获取另一个系统的,只能获取当前系统(可能是windows/pe)的  详情 回复 发表于 2020-1-16 21:45
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-30 12:15

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表