gpt4 book ai didi

windows - netsh 并阻止访问除一个 WLAN 以外的所有 WLAN

转载 作者:可可西里 更新时间:2023-11-01 10:34:14 30 4
gpt4 key购买 nike

目前,我正在使用这个:

netsh wlan add filter permission=block ssid="WLAN1" networktype=infrastructure

隐藏特定的 WLAN SSID,使其不显示在系统托盘中。由于通常有不止一个可用,我决定将它们全部放在一个 *.bat 文件中,就像这样

@echo off
netsh wlan add filter permission=block ssid="WLAN1" networktype=infrastructure
netsh wlan add filter permission=block ssid="WLAN2" networktype=infrastructure
netsh wlan add filter permission=block ssid="AnotherWLAN" networktype=infrastructure
etc

只需单击一下即可全部屏蔽。

但是,这只会在被阻止的 WLAN 具有那些预定义的 SSID 时隐藏它们。如果他们改变了他们的 SSID,他们会再次出现,我必须改变我的文件。如果有几个,这不是问题,但通常会超过 20 个。

我想做什么

有没有办法让我使用 netsh 和 if、for 或 while 循环来阻止除了我选择的一个 SSID 以外的所有内容?例如,在(损坏的)伪代码中

    SET myWLAN = Home                // e.g. home WLAN SSID = Home
if (! SSID == myWLAN) {
loop through the available SSID, and block them via netsh
}

或者,您会建议我只选择:

netsh wlan add filter permission=denyall networktype=infrastructure

然后为我家的无线局域网创建一个特殊的白名单过滤器

netsh wlan delete filter permission=block ssid="myWLAN SSID" networktype=infrastructure

我对这一切还很陌生,所以我们非常欢迎任何帮助。

最佳答案

@ECHO OFF
SETLOCAL

SET "allow=WLAN1"

FOR /f "tokens=3*" %%a IN ('netsh wlan show all^|findstr /i /b /L /c:"SSID "') DO (
IF "%%b" neq "%allow%" ECHO(netsh wlan add filter permission=block ssid="%%b" networktype=infrastructure
)

GOTO :EOF

此批处理搜索 netsh wlan show all 输出以 /b 开始 /i 而不管大小写 /L 文字 /c: 这个常量字符串。

使用包含空格的默认定界符使用标记 3*(该行的其余部分)执行标记化,因此过滤的典型 SSID 行将是

SSID 5 : WLAN2

token 1 是 SSID,2 是 5,3 是 :,4 是 WLAN2

由于第一个指定的 token 是 3,因此该 token 分配给 %%a,下一个 token 分配给 %%b .

然后如果 %%b 中的 token 与 allowed 字符串不匹配,则阻止它(好吧,命令只是 echo用于调试 - 将 echo(netsh 更改为 netsh 以激活。

如果你要使用

set "allow=%~1" instead of `...WLAN1` then you could run<br>

这批 WLAN4

阻止除 WLAN4 之外的所有内容。

关于windows - netsh 并阻止访问除一个 WLAN 以外的所有 WLAN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36303540/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com