Magnum news - Простий bat файл для керування двома мережевими

Іноді доводиться шукати досить не тривіальні рішення для простих начебто завдань.

Так ось і цього разу стало питання про те, як же керувати двома мережевими картами для перемикання між мережами. Якщо коротенько то завдання полягало в наступному: є комп'ютер із встановленими на ньому двома мережевими картами, потрібно зробити так, щоб одна локальна мережа не перетиналася з іншою!

Хтось скаже, мовляв, якщо там різні підмережі типу192.168.1.0-254 і192.168.10.0-254 то вони й так не будуть перетинатися, але тут трохи все складніше в плані людського чинника . Людина переконана, що є ймовірність злому і по суті вона має рацію.

Тому найпростіший і надійніший спосіб - це відключати одну мережу, коли працюєш з іншою. Для цього напевно вже придумано безліч програм, але все ж таки Я і мій співробітник "rdx__x " вирішили придумати своє колесо.

Так і народилася ідея написатиbat файл який перевірятиме яка з мереж в даний момент використовується і відключатиме її, тим самим переходячи на іншу мережу. Тобтовідключає одну мережеву карту тавключає другу.

На питання, а навіщо це якщо можна просто зробити ярлики і вручну відключати та включати мережеві, відповідь знову ж таки просто - людський фактор, вони такі ;-)

Для її реалізації було використаноDevCon.

DevCon — це програма з інтерфейсом командного рядка, яка використовується як альтернатива диспетчеру пристроїв З її допомогою можна вмикати, вимикати, перезапускати, оновлювати, видаляти та опитувати окремі пристрої або групи пристроїв. Програма DevCon також надає необхідні розробнику драйвера відомості, які недоступні за допомогою диспетчера пристроїв.

За його допомогою можна реалізуватиуправління пристроєм (відключення /увімкнення ) з командного рядка використовуючи його ім'я в системі.

Для цього спочатку необхідно взяти сам файл devcon.exe та скопіювати його в папкуWindows/system32/

Потім у довільному місці створитиbat файл для його подальшого запуску.

Приклад коду :

@echo off set Inet="PCI\VEN_1969&DEV_1048&SUBSYS_82261043&REV_B0\4&625283&0&00E5 " set Local="PCI\ SUBSYS_813910EC&REV_10\4&19ABE7DE&0&08F0 "

echo Connection check. . . :check ping 192.168.10.1 > nul if not %errorlevel%==1 goto switch cls echo Connecting Inet . . .

devcon disable @%Local% devcon enable @%Inet%

cls echo Connected Inet ! goto end

:switch devcon disable @%Inet% devcon enable @%Local%

cls echo Connected Local Network!

Трохи поясню суть вище написаного коду :

Спочатку беруться два пристроїInet іLocal, кожному з них надається ім'я потрібного пристрою в системі.

Примітка : не плутайте назву з ім'ям в системі, назва може бути "Підключення по локальній мережі ", а ось ім'я "PCI\VEN_1969&DEV_1048&SUBSYS_82261043&REV_B0\4& ;625283&000E5 ". Воно береться до диспетчера пристроїв "ID обладнання "

простий

Власне на цьому винахід чергового колеса закінчується! =)