Wednesday 14 March 2018

networking - Windows command-line: Fastest way to disable internet (keeping LAN)?



Split question: this other one here is for Linux.



I think the easiest way to deactivate internet (not LAN) in Windows command-line is to remove the default gateway, so, assuming LAN is 10.0.2.0/24 and gateway is 10.0.2.1 :


`route delete 0.0.0.0 mask 0.0.0.0 10.0.2.1`  

To reactivate internet:


`route add 0.0.0.0 mask 0.0.0.0 10.0.2.1`

But, even when this a simple line, it requires to discover the default gateway IP first:




  • In Windows:


    route print




I am going to build some general purpose shell scripts that need to enable/disable internet(but keep LAN working), so it seems I am going to need some grep equivalent operations to filter and detect the exact gateway IP number (it could be 10.0.2.1, 127.0.0.1, 127.0.50.1, 192.168.0.1 ... etc), unless I achieve to find a simpler command line.
Any ideas, please?



  • EDIT: Some people reports that gateway deletion in Windows could also be done like this:


route delete 0.0.0.0


So, apparently, there would be no problem in modifying the deletion script made by @and31415 .



Answer




Similar to @John1024's approach, here's how you can do it in Windows:


Disable


@echo off
cd /d "%~dp0"

REM retrieve the current gateway
set dest=0.0.0.0
for /f "tokens=2,3" %%A in ('"route print %dest% | findstr /c:"%dest%" "') do (

REM save the IP and delete the gateway
echo %%A %%B>%dest%.txt
route delete %dest% >nul
)
exit /b

Enable


@echo off
cd /d "%~dp0"

REM ensure the settings file exists
set dest=0.0.0.0
if not exist %dest%.txt exit /b 2

REM restore the default gateway
for /f "tokens=1,2" %%A in (%dest%.txt) do (route add %dest% mask %%A %%B >nul)
exit /b

No comments:

Post a Comment

Where does Skype save my contact's avatars in Linux?

I'm using Skype on Linux. Where can I find images cached by skype of my contact's avatars? Answer I wanted to get those Skype avat...