2016-12-20 1 views
1

Используя netsh wlan connect name="your network_name", вы можете запросить подключение к сети WiFi, но не можете быть уверены, подключены ли вы или нет.Использование Batch, как определить, подключены ли вы к сети WiFi?

Итак, в Batch, какая будет командная строка, чтобы проверить, подключен ли я к сети WiFi? (Сеть Wi-Fi может, или не может иметь доступ к сети.) [Она также должна работать для Mobile-горячих точек тоже]

Если подключен, то он должен отображать YES,

Если не подключен, он должен отображать NO ,

потому что я хочу запустить цикл в зависимости от результатов, которые я получаю.

Так может кто-нибудь написать хорошую рабочую пакетную программу !! и с ++ (если это возможно тоже)

То, что я пробовал:

WMIC /node: ”PutYourPCNameHere” path WIN32_NetworkAdapter where (NetConnectionID="Wi-Fi") get NetConnectionStatus 

, но мы не можем ставить, если петли. Поэтому я не знаю, как продолжить!

и

@echo off 
ECHO Checking connection, please wait... 
PING -n 1 www.google.com|find "Reply from " >NUL 
IF NOT ERRORLEVEL 1 goto :SUCCESS 
IF  ERRORLEVEL 1 goto :TRYAGAIN 

:TRYAGAIN 
ECHO FAILURE! 
ECHO Let me try a bit more, please wait... 
@echo off 
PING -n 3 www.google.com|find "Reply from " >NUL 
IF NOT ERRORLEVEL 1 goto :SUCCESS2 
IF  ERRORLEVEL 1 goto :TRYIP 

:TRYIP 
ECHO FAILURE! 
ECHO Checking DNS... 
ECHO Lets try by IP address... 
@echo off 
ping -n 1 216.239.37.99|find "Reply from " >NUL 
IF NOT ERRORLEVEL 1 goto :SUCCESSDNS 
IF  ERRORLEVEL 1 goto :TRYROUTER 

:TRYROUTER 
ECHO FAILURE! 
ECHO Lets try pinging the router.... 
ping -n 2 192.168.1.1|find "Reply from " >NUL 
IF NOT ERRORLEVEL 1 goto :ROUTERSUCCESS 
IF  ERRORLEVEL 1 goto :NETDOWN 

:ROUTERSUCCESS 
ECHO It appears that you can reach the router, but internet is unreachable. 
goto :FAILURE 

:NETDOWN 
ECHO FAILURE! 
ECHO It appears that you having network issues, the router cannot be reached. 
goto :FAILURE 

:SUCCESSDNS 
ECHO It appears that you are having DNS issues. 
goto :FAILURE 

:SUCCESS 
ECHO You have an active Internet connection 
pause 
goto END 

:SUCCESS2 
ECHO You have an active internet connection but some packet loss was detected. 
pause 
goto :END 

:FAILURE 
ECHO You do not have an active Internet connection 
pause 
goto :END 

:END 

, но это не работает над мобильные точки доступа (без интернета)

+0

'NETSH шоу interfaces' WLAN показывает, что вы подключены. См. 'Netsh wlan show /?'. –

+0

но я не могу использовать, если условия с ним брата. –

+2

«Кто-нибудь может написать хорошую рабочую пакетную программу !! и C++ (если возможно) _" - SO не является кодовым сервисом. Покажите, что вы пробовали, и где именно вы застряли (в настоящее время ваш вопрос охватывает только bash, а не C++). –

ответ

2
C:\Windows\system32>netsh wlan show interfaces 

There is 1 interface on the system: 

    Name     : Wi-Fi 
    Description   : Realtek RTL8723BE 802.11 b/g/n Wi-Fi Adapter 
    GUID     : 6383a702-c44d-465e-8f5d-e7b3bc52b300 
    Physical address  : 18:4f:32:35:3b:1d 
    State     : connected 
    SSID     : OptusWiFi E5331 0afa 
    BSSID     : d0:7a:b5:8a:0a:fa 
    Network type   : Infrastructure 
    Radio type    : 802.11n 
    Authentication   : WPA2-Personal 
    Cipher     : CCMP 
    Connection mode  : Profile 
    Channel    : 6 
    Receive rate (Mbps) : 72 
    Transmit rate (Mbps) : 72 
    Signal     : 93% 
    Profile    : OptusWiFi E5331 0afa 

    Hosted network status : Not available 


C:\Windows\system32>netsh wlan show interfaces 

There is 1 interface on the system: 

    Name     : Wi-Fi 
    Description   : Realtek RTL8723BE 802.11 b/g/n Wi-Fi Adapter 
    GUID     : 6383a702-c44d-465e-8f5d-e7b3bc52b300 
    Physical address  : 18:4f:32:35:3b:1d 
    State     : disconnected 
    Radio status   : Hardware On 
          Software Off 

    Hosted network status : Not available 

ли выход из двух состояний, связанных и не связаны между собой.

Так что, если в выводе Signal появляется сообщение, если оно связано или нет.

C:\Windows\system32>netsh wlan show interfaces | Findstr /c:"Signal" && Echo Online || Echo Offline 
Offline 

C:\Windows\system32>netsh wlan show interfaces | Findstr /c:"Signal" && Echo Online || Echo Offline 
    Signal     : 93% 
Online 

&& и || являются сокращенная if команды

Смотрите мой CMD Шпаргалка здесь Command to run a .bat file

+0

Супер! братан! получил использование! но почему r не использует это: netsh wlan show interfaces | Findstr/c: "connected" && Echo Online || Echo Offline –

+0

Я не вижу ни одного слова, подключенного в любом месте на выходе. (он отключен). –

+0

Получил это bro! большое спасибо! есть ли способ связаться, если мне нужна помощь? –