
批處理BAT如何顯示連接到虛擬wifi的設(shè)備名稱通過netsh命令,可以在安裝了無線網(wǎng)卡的 win7/8 系統(tǒng)上設(shè)置虛擬wifi(Virtual WiFi),用來連接無線設(shè)備。我想查詢連接到虛擬wifi的所有設(shè)備的名稱,比如電腦就顯示計(jì)算機(jī)名,應(yīng)該怎么做呢?我已經(jīng)寫好了查詢連接到虛擬wifi設(shè)備IP和MAC地址的代碼,但顯示名稱這一塊暫時(shí)沒有好的辦法,連接到虛擬wifi的設(shè)備除了電腦外,還可能有智能手機(jī)等設(shè)備。我試過用ping -a 手機(jī)IP,顯示的是:正在 Ping android-febeb8e1140ac9e5.mshome.net [192.168.173.220] 具有 32 字節(jié)的數(shù)據(jù):這似乎不是正確的手機(jī)名。查詢連接虛擬WiFi設(shè)備IP和MAC地址的代碼如下:
想請(qǐng)教一下各位,要在此基礎(chǔ)上再顯示設(shè)備的名稱,應(yīng)該怎么做好呢?謝謝!nclick="copycode($('code0'));">復(fù)制代碼
- @echo off
- setlocal EnableExtensions &rem 啟用命令處理器擴(kuò)展
- setlocal EnableDelayedExpansion &rem 啟用延緩環(huán)境變量
- rem 將熱點(diǎn)信息保存到數(shù)組變量中
- 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 無線熱點(diǎn)信息:
- if /i !apinfo[1]!== (echo 無線熱點(diǎn)模式:不可用) else echo 無線熱點(diǎn)模式:!apinfo[1]!
- if /i !apinfo[8]!== (echo 無線熱點(diǎn)狀態(tài):不可用) else echo 無線熱點(diǎn)狀態(tài):!apinfo[8]!
- if !apinfo[1]!== 已啟用 set ismode=true &set apssid=!apinfo[2]!
- if !apinfo[8]!== 已啟動(dòng) set isstart=true
- if /i !isstart!==true (
- set apmac=!apinfo[9]! &set apmac=!apmac::=-! &rem 獲取熱點(diǎn)物理地址,并將:轉(zhuǎn)換為-
- for /f tokens=1* delims=: %%i in ('ipconfig /all') do (
- if /i %%j== !apmac! set isap=true &rem 已進(jìn)入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 無線熱點(diǎn)的SSID:!apssid!
- echo 無線熱點(diǎn)的IP地址:!apip!
- echo 無線熱點(diǎn)的物理地址:!apmac!
- echo - - - - - - &echo;
- echo 連接到無線熱點(diǎn)上的客戶端信息:
- set sumclient=!apinfo[12]!
- if !sumclient! gtr 0 (
- echo 客戶端總數(shù):!sumclient!
- echo 序號(hào)類型驗(yàn)證狀態(tài)物理地址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 當(dāng)前沒有客戶端連接到無線熱點(diǎn)上
- )else echo 未啟動(dòng)無線熱點(diǎn),SSID、IP及物理地址不可用 &echo 未啟動(dòng)無線熱點(diǎn),客戶端信息不可用
- echo - - - - - -
- pause

