[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 批处理如何获取真实正在使用的PPPOE账号?

该问题的复杂性在于一是电脑上有多张有线网卡,甚至还有一块无线网卡,也就存在多个本地连接;二是有多个PPPOE宽带连接存在和不同的拨号账号,并且都能正常拨号上网。并且本机也可以不用PPPOE拨号而直接通过LAN路由器直接上互联网。

想通过批处理得到的需求是:得到以下信息,并保存到test.txt中去。

1、当前本机连接上了互联网吗:yes/no
2、互联网连接方式:LAN路由器连接/PPPOE拨号连接   (没有连上互联网该项就为空)
3、当前使用的PPPOE账号:adslxxxx        (判断出联网方式是LAN时为空,是PPPOE时取此时真实使用的账号,不能取其他在系统中存在的且此时并没有拨号联网使用的pppoe账号)
4、当前网络连接网卡MAC:xx-xx-xx-xx          (必须是此时连接通互联网的那张网卡的MAC,即使其他网卡是正常的。)

我觉得已经难死了,请各位高人帮助我解决一下,谢谢!!!

[ 本帖最后由 locoman 于 2011-2-11 14:41 编辑 ]

没有这个环境,没办法测试
不过可以提供思路

1,是否联网,这个容易
ping -n 2 baidu.com>nul &&echo 已经联网!

2,联网方式,这个我这里没法测试。
Wmic NICCONFIG where "IPEnabled="TRUE"" 可以得到连接正常的连接。也就是只要是“网络连接”里亮的连接。

3,PPPOE账号,可以从事件日志中找到,不管是否联网,曾经登陆过并且日志还存在就可以找到。如果要求是现在使用的,可以从PPPOE连接时间对比日志时间加以判断。
这个找PPPOE账号:WMIC NTEVENT where "LogFile='system' SourceName='RemoteAccess' get Message /value
这个查看PPPOE是否联网以及MAC: Wmic NICCONFIG where "ServiceName='RasPppoe'" get  IPEnabled,MACAddress         

4,查出当前使用的连接,必须知道默认网关是对应那个IP的。
4.1 查出有效的接口 route print |findstr "\<0x[0-9]" ,其中Loopback interface 表示回环地址接口,可能你会用到。
4.2 查出默认网关 route print |findstr "\<Default Gateway:" 用for /f 取出 网关地址,然后同样在route print里找到网关地址等于之前找到的那个IP的一行,取出接口IP地址,即Interface 这一列。
4.3 有了这个IP地址,可以反查网卡。
4.4 wmic NIC where Description^="%*" get NetConnectionID /value 可以查出网络连接名称,如“本地连接”,“宽带连接”

TOP

谢谢caruko上尉的思路,只有思路就一定有出路!
测试环境我这里倒好找,但就是因为俺搞不定完成这些需求的批处理,请您整理出来一个完整能用放上来,我测试后,一定将情况报告在这里供大家参考学习。

ruko上尉请了,恭祝您新年好!拜托您继续帮助下去,俺等着……

TOP

高手们还在过着快乐新年吧,请抽空帮帮我,搞个实例,我给您恭喜了。
谢谢!!

TOP

返回列表