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

[网络连接] 批处理BAT如何显示连接到虚拟wifi的设备名称?

通过netsh命令,可以在安装了无线网卡的 win7/8 系统上设置虚拟wifi(Virtual WiFi),用来连接无线设备。我想查询连接到虚拟wifi的所有设备的名称,比如电脑就显示计算机名,应该怎么做呢?
我已经写好了查询连接到虚拟wifi设备IP和MAC地址的代码,但显示名称这一块暂时没有好的办法,连接到虚拟wifi的设备除了电脑外,还可能有智能手机等设备。我试过用ping -a 手机IP,显示的是:
正在 Ping android-febeb8e1140ac9e5.mshome.net [192.168.173.220] 具有 32 字节的数
据:
这似乎不是正确的手机名。

查询连接虚拟WiFi设备IP和MAC地址的代码如下:
  1. @echo off
  2. setlocal EnableExtensions &rem 启用命令处理器扩展
  3. setlocal EnableDelayedExpansion &rem 启用延缓环境变量
  4.   rem 将热点信息保存到数组变量中
  5.   set "n=0"
  6.   for /f "skip=3 tokens=1* delims=:" %%i in ('netsh wlan show hostednetwork') do (
  7.     set /a n+=1
  8.     if !n! gtr 12 ( rem 12行之后为客户端信息
  9.       set "apinfo[!n!]=%%i:%%j" &rem 客户端物理地址采用:分隔,故需要保存i
  10.     ) else set "apinfo[!n!]=%%j"
  11.   )
  12.   echo 无线热点信息:
  13.   if /i "!apinfo[1]!"=="" (echo   无线热点模式:不可用) else echo   无线热点模式:!apinfo[1]!
  14.   if /i "!apinfo[8]!"=="" (echo   无线热点状态:不可用) else echo   无线热点状态:!apinfo[8]!
  15.   if "!apinfo[1]!"==" 已启用" set "ismode=true" &set "apssid=!apinfo[2]!"
  16.   if "!apinfo[8]!"==" 已启动" set "isstart=true"
  17.   if /i "!isstart!"=="true" (
  18.     set "apmac=!apinfo[9]!" &set "apmac=!apmac::=-!" &rem 获取热点物理地址,并将:转换为-
  19.     for /f "tokens=1* delims=:" %%i in ('ipconfig /all') do (
  20.       if /i "%%j"==" !apmac!" set "isap=true" &rem 已进入ap信息
  21.       if /i "!isap!"=="true" (
  22.         set "s=%%i"
  23.         if /i "!s:~0,7!"=="   IPv4" (
  24.           set "apip=%%j"
  25.           set "isap=false" &rem 已离开ap信息
  26.         )
  27.       )
  28.     )
  29.     for /f "delims=(" %%i in ("!apip!") do set "apip=%%i" &rem 分离出ip地址
  30.     echo   无线热点的SSID:!apssid!
  31.     echo   无线热点的IP地址:!apip!
  32.     echo   无线热点的物理地址:!apmac!
  33.     echo - - - - - - &echo;
  34.     echo 连接到无线热点上的客户端信息:
  35.     set "sumclient=!apinfo[12]!"
  36.     if !sumclient! gtr 0 (
  37.       echo   客户端总数:!sumclient!
  38.       echo   序号 类型 验证状态 物理地址            IP地址
  39.       for /l %%i in (13,1,!n!) do (
  40.         for /f "tokens=1,2 delims= " %%j in ("!apinfo[%%i]!") do (
  41.           set "clientmac=%%j" &set "clientmac=!clientmac::=-!"
  42.           set "clientstate=%%k"
  43.         )
  44.         for /f "tokens=1,3 delims= " %%i in ('arp -a -n !apip! ^| find /i "!clientmac!"') do (
  45.           set "clientip=%%i"
  46.           set "ipclass=%%j"
  47.         )
  48.         set /a s+=1
  49.         echo   !s! !ipclass! !clientstate! !clientmac!   !clientip!
  50.       )
  51.     ) else echo   当前没有客户端连接到无线热点上
  52.   )  else echo   未启动无线热点,SSID、IP及物理地址不可用 &echo   未启动无线热点,客户端信息不可用
  53.   echo - - - - - -
  54. pause
复制代码
想请教一下各位,要在此基础上再显示设备的名称,应该怎么做好呢?谢谢!

返回列表