![]() |
Программное вкл/выкл сетевого соединения
Случилась вот такая проблема - на серваке, который стоит в другом здании, изредка но все же зависает внутренняя сетевуха (смотрит во внутреннюю сеть). Если отключить и снова включить соединение то все работает.
Я хочу написать прогу которая по определенному сигналу отключала и включала это соединение. Вопрос КАК? (сигнал будет поступать от внешней сетевухи, благо она работает нормально) |
для начала неплохо бы ось сервака написать потом принцип включения/выключения а там и думать можно
|
а может просче написать скрипт на сервере который будет проверять работает ли сетевуха (например пингом куда нибудь) и перезапускать если надо и поставить его в cron?
|
упс а ось то и забыл написать. Ось - Win 2003 Server.
Drakosha Поподробней пожалуйста. Мне без разницы каким путем это реализовывать, главное чтобы всё это работало без вмешательства человека |
прочитай еще раз мое сообщение :)
|
dyr_farot
принцип включения/выключения? Есть же в виндах в систем_трее значок подключения сети.. вооот... мне надо как бы нажать на кнопку disable (если кликнуть по правой кнопке на иконке), а потом сразу Enable. Т.е сетевое подключение выключить и включить заново. Я подумал может есть в виндах какая-нить специальная функция по управлению подключениями... можно конечно попробовать найти handle пункта меню в систем трее и программно "кликнуть", но это как то не шибко красивое решение.... |
хм... на юнихе ето легко... может стоит cygwin установить и на нем ето сделать?
|
Drakosha
как? я в юниксах не шарю совсем, если пример напишешь буду рад :) |
к сожалению я не знаю какие комманды есть в cygwin, может кто скажет будет ли ето работать:
#! /bin/bash res=`ping google.com -c 1 -q -W 2 -w 2 | grep '1 packets transmitted, 1 received, 0% packet loss' | wc -l` #echo ">>> $res" if [ "$res" -eq "1" ] then echo OK else ifdown eth0; ifup eth0 fi from: http://imho.ws/showthread.php?t=47641&page=1&pp=20 |
DWORD dwResult;
// Call the WNetCancelConnection2 function, specifying // that the connection should no longer be a persistent one. // dwResult = WNetCancelConnection2("z:", CONNECT_UPDATE_PROFILE, // remove connection from profile FALSE); // fail if open files or jobs // Process errors. // The device is not a local redirected device. // if (dwResult == ERROR_NOT_CONNECTED) { TextOut(hdc, 10, 10, "Drive z: not connected.", 23); return FALSE; } // Call an application-defined error handler. // else if(dwResult != NO_ERROR) { NetErrorHandler(hwnd, dwResult, (LPSTR)"WNetCancelConnection2"); return FALSE; } // // Otherwise, report canceling the connection. // TextOut(hdc, 10, 10, "Connection closed for z:.", 25); |
dyr_farot
это я так понял для расшаренных ресурсов, а мне надо для "Local Area Connection" и иже с ними |
| Часовой пояс GMT +4, время: 07:36. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.