通过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地址的代码如下:- @echo off
- setlocal EnableExtensions &rem 启用命令处理器扩展
- setlocal EnableDelayedExpansion &rem 启用延缓环境变量
-
- rem 将热点信息保存到数组变量中
- set "n=0"
- for /f "skip=3 tokens=1* delims=:" %%i in ('netsh wlan show hostednetwork') do (
- set /a n+=1
- if !n! gtr 12 ( rem 12行之后为客户端信息
- set "apinfo[!n!]=%%i:%%j" &rem 客户端物理地址采用:分隔,故需要保存i
- ) else set "apinfo[!n!]=%%j"
- )
-
- echo 无线热点信息:
- if /i "!apinfo[1]!"=="" (echo 无线热点模式:不可用) else echo 无线热点模式:!apinfo[1]!
- if /i "!apinfo[8]!"=="" (echo 无线热点状态:不可用) else echo 无线热点状态:!apinfo[8]!
- if "!apinfo[1]!"==" 已启用" set "ismode=true" &set "apssid=!apinfo[2]!"
- if "!apinfo[8]!"==" 已启动" set "isstart=true"
-
- if /i "!isstart!"=="true" (
- set "apmac=!apinfo[9]!" &set "apmac=!apmac::=-!" &rem 获取热点物理地址,并将:转换为-
- for /f "tokens=1* delims=:" %%i in ('ipconfig /all') do (
- if /i "%%j"==" !apmac!" set "isap=true" &rem 已进入ap信息
- if /i "!isap!"=="true" (
- set "s=%%i"
- if /i "!s:~0,7!"==" IPv4" (
- set "apip=%%j"
- set "isap=false" &rem 已离开ap信息
- )
- )
- )
- for /f "delims=(" %%i in ("!apip!") do set "apip=%%i" &rem 分离出ip地址
- echo 无线热点的SSID:!apssid!
- echo 无线热点的IP地址:!apip!
- echo 无线热点的物理地址:!apmac!
- echo - - - - - - &echo;
-
- echo 连接到无线热点上的客户端信息:
- set "sumclient=!apinfo[12]!"
- if !sumclient! gtr 0 (
- echo 客户端总数:!sumclient!
- echo 序号 类型 验证状态 物理地址 IP地址
- for /l %%i in (13,1,!n!) do (
- for /f "tokens=1,2 delims= " %%j in ("!apinfo[%%i]!") do (
- set "clientmac=%%j" &set "clientmac=!clientmac::=-!"
- set "clientstate=%%k"
- )
- for /f "tokens=1,3 delims= " %%i in ('arp -a -n !apip! ^| find /i "!clientmac!"') do (
- set "clientip=%%i"
- set "ipclass=%%j"
- )
- set /a s+=1
- echo !s! !ipclass! !clientstate! !clientmac! !clientip!
- )
- ) else echo 当前没有客户端连接到无线热点上
- ) else echo 未启动无线热点,SSID、IP及物理地址不可用 &echo 未启动无线热点,客户端信息不可用
- echo - - - - - -
- pause
复制代码 想请教一下各位,要在此基础上再显示设备的名称,应该怎么做好呢?谢谢! |