IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Программное вкл/выкл сетевого соединения (https://www.imho.ws/showthread.php?t=66208)

ReapeR 13.08.2004 16:56

Программное вкл/выкл сетевого соединения
 
Случилась вот такая проблема - на серваке, который стоит в другом здании, изредка но все же зависает внутренняя сетевуха (смотрит во внутреннюю сеть). Если отключить и снова включить соединение то все работает.
Я хочу написать прогу которая по определенному сигналу отключала и включала это соединение. Вопрос КАК?
(сигнал будет поступать от внешней сетевухи, благо она работает нормально)

dyr_farot 19.08.2004 20:29

для начала неплохо бы ось сервака написать потом принцип включения/выключения а там и думать можно

Drakosha 20.08.2004 11:14

а может просче написать скрипт на сервере который будет проверять работает ли сетевуха (например пингом куда нибудь) и перезапускать если надо и поставить его в cron?

ReapeR 20.08.2004 14:39

упс а ось то и забыл написать. Ось - Win 2003 Server.

Drakosha
Поподробней пожалуйста. Мне без разницы каким путем это реализовывать, главное чтобы всё это работало без вмешательства человека

dyr_farot 20.08.2004 20:03

прочитай еще раз мое сообщение :)

ReapeR 20.08.2004 20:51

dyr_farot
принцип включения/выключения?
Есть же в виндах в систем_трее значок подключения сети.. вооот... мне надо как бы нажать на кнопку disable (если кликнуть по правой кнопке на иконке), а потом сразу Enable. Т.е сетевое подключение выключить и включить заново. Я подумал может есть в виндах какая-нить специальная функция по управлению подключениями...
можно конечно попробовать найти handle пункта меню в систем трее и программно "кликнуть", но это как то не шибко красивое решение....

Drakosha 21.08.2004 01:04

хм... на юнихе ето легко... может стоит cygwin установить и на нем ето сделать?

ReapeR 21.08.2004 12:31

Drakosha
как? я в юниксах не шарю совсем, если пример напишешь буду рад :)

Drakosha 21.08.2004 13:24

к сожалению я не знаю какие комманды есть в 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

dyr_farot 21.08.2004 14:10

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);

ReapeR 25.08.2004 14:52

dyr_farot
это я так понял для расшаренных ресурсов, а мне надо для "Local Area Connection" и иже с ними


Часовой пояс GMT +4, время: 07:36.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.