国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

使用PowerShell通過不同網(wǎng)絡(luò)(網(wǎng)卡)訪問不同網(wǎng)站

2023-03-26 23:30 作者:撲克子  | 我要投稿

在學(xué)校生活時經(jīng)常有一種需求:訪問某些網(wǎng)站(如校內(nèi)系統(tǒng))時需要使用校園網(wǎng),訪問另一些網(wǎng)站(如Steam、Github等)校園網(wǎng)很慢,需要使用手機瀏覽器等其他網(wǎng)絡(luò)加速。此時我就覺得如果能同時使用兩個網(wǎng)絡(luò)該多好

本文就介紹如何用PowerShell實現(xiàn)這個功能(需要Windows平臺,版本XP及以上)

原理

首先需要明確,同一張網(wǎng)卡是無法同時連接兩個網(wǎng)絡(luò)的(除非同時使用多個代理達到這種效果)。幸運的是,現(xiàn)在絕大多數(shù)電腦都同時擁有有線和無線兩張網(wǎng)卡,所以可以實現(xiàn)這個效果

其次,一般應(yīng)用程序無法直接指定網(wǎng)卡上網(wǎng)(例如虛擬機軟件除外),不過我們有代替的方法:設(shè)置路由表

路由表的基本原理是:要求IP的某些網(wǎng)段,走指定的網(wǎng)關(guān)。而網(wǎng)關(guān)又和網(wǎng)絡(luò)有密不可分的聯(lián)系,從而實現(xiàn)隱式地指定網(wǎng)卡

查看電腦信息

首先可以同時連上有線和無線網(wǎng),方便查看

1、網(wǎng)絡(luò)適配器

一臺電腦上會有多個網(wǎng)絡(luò)適配器,其中有物理網(wǎng)卡,也有虛擬網(wǎng)卡。我們要找出其中物理網(wǎng)卡里的有線和無線網(wǎng)卡:首先鍵入ipconfig,可以對此有一個大致印象:

十分明顯地看到,有好多適配器。但比如說名字里帶virtual的,或者vEthernet這種顯然是虛擬網(wǎng)卡。剩下很快就能發(fā)現(xiàn)有線和無線網(wǎng)絡(luò)適配器分別是:以太網(wǎng)和WLAN(不同電腦可能名字不一樣)

接下來使用Get-NetIPConfiguration指令,就可以看到物理網(wǎng)卡的信息了:

其中我們要注意Gateway的項,這就是網(wǎng)關(guān)

其他相關(guān)指令:netsh interface show interface、Get-NetAdapter,感興趣可以看看

2、路由

使用Get-NetRoute指令(或route print)可以查看路由表:

表中每一條代表一個路由,注意他所有的屬性:

  • ifIndex (interface index)(接口序號):即和上圖同名的屬性

  • DestinationPrefix(目標(biāo)前綴):即指定的網(wǎng)段,屬于這個網(wǎng)段的會找對應(yīng)的網(wǎng)關(guān)(其中前面四段句點分開的是IP,斜杠后的是子網(wǎng)掩碼從左往右數(shù)1的位數(shù))

  • NextHop(下一跳):即指定的網(wǎng)關(guān)

  • 兩個Metric(躍點):大致表示這個路由的優(yōu)先級,數(shù)字越小越優(yōu)先

  • PolicyStore(存儲策略):表示這是臨時路由(ActiveStore)還是永久路由(PersistentStore),其中臨時路由會在重啟后刪除重設(shè)

注意NextHop不為空的路由(一般Metric也最?。?,這就是有線和無線網(wǎng)默認(rèn)的路由,我們新建路由時為避免沖突,要先刪除這個(不用擔(dān)心失誤,重啟后會恢復(fù))

這些路由前面網(wǎng)段都是0.0.0.0/0(或::/0),表示全網(wǎng)段都可以使用這個路由。

從Metric可以發(fā)現(xiàn),絕大多數(shù)電腦同時連有線和無線網(wǎng)時,都是有線網(wǎng)的Metric比較小,這也是為什么路由總是會優(yōu)先選擇有線網(wǎng)連接。Windows默認(rèn)開啟了AutomaticMetric,會按照帶寬網(wǎng)速自動設(shè)定Metric,有需要可以去設(shè)置關(guān)閉

3、設(shè)備地址

輸入指令Get-CimInstance Win32_NetworkAdapterConfiguration | Select-Object Description, SettingID,可以看到網(wǎng)卡以及對應(yīng)的Guid

我們將來可以通過這個Guid,從注冊表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\{對應(yīng)設(shè)備Guid}\Connection的PnPInstanceId項判斷是不是物理網(wǎng)卡(值以PCI開頭是物理網(wǎng)卡,BTH開頭是藍牙網(wǎng)卡,其他是虛擬網(wǎng)卡)

實現(xiàn)思路

接下來就是實現(xiàn)環(huán)節(jié)了,雖然指定網(wǎng)關(guān)聽起來很容易。但如果切換網(wǎng)絡(luò)之后,不僅網(wǎng)關(guān)可能會變,而且接口別名(InterfaceAlias)也會變,到時候再調(diào)整比較麻煩。

如果可以指定網(wǎng)卡,并指定網(wǎng)段就很方便了。實際上我們確實可以這樣做,因為Get-NetIPConfiguration(或Get-NetAdapter)可以看出來:接口描述(InterfaceDescription)、接口別名(InterfaceAlias)和網(wǎng)關(guān)(Gateway)幾乎是一一對應(yīng)的關(guān)系,所以我們可以通過PowerShell(或C/C++)從接口描述查找網(wǎng)關(guān),并設(shè)置路由,就可以達成目的

至于網(wǎng)段分配,一般校園網(wǎng)都是連續(xù)的網(wǎng)段,比如說172.18.XXX.XXX都是校園網(wǎng)IP,那么就設(shè)置目標(biāo)前綴(DestinationPrefix)為172.18.0.0/16,表示子網(wǎng)掩碼是255.255.0.0,即前16位是固定的,后面可以變化。將這段路由優(yōu)先級設(shè)最高,然后再設(shè)置剩下的路由(直接用0.0.0.0/0)全部走另一個網(wǎng)絡(luò)(優(yōu)先級第二高)

另外還可以結(jié)合Proxifier等軟件管理,如用Proxifier強大的代理篩選功能將校園網(wǎng)所有IP或程序都代理到某一臺學(xué)校的服務(wù)器上,這樣路由規(guī)則就可以只要指定一個IP了(如172.18.6.57/32)

腳本代碼

需要使用PowerShell7及以上運行

在使用的時候,只需要按照需要修改# Main部分

代碼倉庫

包含完整PowerShell代碼和部分C++方法

Github:https://github.com/Poker-sang/RouteModifier

引用圖片

[JLT4n] ID = 103477739
[Walts P。] ID = 103342526

參考資料

[1] NetTcpIp(https://learn.microsoft.com/powershell/module/nettcpip)

使用PowerShell通過不同網(wǎng)絡(luò)(網(wǎng)卡)訪問不同網(wǎng)站的評論 (共 條)

分享到微博請遵守國家法律
本溪市| 寿阳县| 韶山市| 织金县| 镇宁| 鹤峰县| 班戈县| 商城县| 昌平区| 新邵县| 丹棱县| 龙州县| 长寿区| 阳山县| 南岸区| 沁阳市| 岳阳县| 贵港市| 饶平县| 罗山县| 游戏| 定日县| 大邑县| 茂名市| 浏阳市| 海盐县| 双牌县| 广饶县| 兴宁市| 揭东县| 青铜峡市| 石首市| 汤原县| 湟中县| 黄梅县| 鄂尔多斯市| 当雄县| 龙岩市| 九龙城区| 蓬安县| 大港区|