Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2011, 15:20   #1
alekseiryzhakov
Пользователь
 
Аватар для alekseiryzhakov
 
Регистрация: 22.12.2010
Сообщений: 14
По умолчанию Широковещательный Wake On LAN

Здрасти! Вот есть такая тема, как послать широковещательную команду на пробуждение? В общем есть около шести компьютеров соединённых между собой в локальную сеть. Хочу сделать следующее, когда включаю свой компьютер из авто запуска запускается программа которая посылает широковещательный сигнал на пробуждение остальных компьютеров. Набросал маленький код, но что-то не то...
Код:
{Wake On LAN}

program Project1;

{$APPTYPE CONSOLE}

uses
  Windows,
  WinTypes,
  Messages,
  SysUtils,
  Classes,
  IdBaseComponent,
  IdComponent,
  IdUDPBase,
  IdUDPClient;

function HexToInteger(HexValue: string): Integer;
begin
  Result := StrToInt('$' + HexValue);
end;

procedure WakeUPComputer(MacAddress: string);
var
  IByte, JByte: Byte;
  Buffer: array [1..116] of Byte;
  IdUDPClient: TIdUDPClient;
begin
  Writeln('   [Wake On LAN]   ');
  try
    for IByte := 1 to 6 do
    begin
      Buffer[IByte] := HexToInteger(MacAddress[(IByte * 2) - 1] + MacAddress[IByte * 2]);
    end;
    Buffer[7] := $00;
    Buffer[8] := $74;
    Buffer[9] := $FF;
    Buffer[10] := $FF;
    Buffer[11] := $FF;
    Buffer[12] := $FF;
    Buffer[13] := $FF;
    Buffer[14] := $FF;
    for JByte := 1 to 16 do
    begin
      for IByte := 1 to 6 do
      begin
        Buffer[15 + (JByte - 1) * 6 + (IByte - 1)] := Buffer[IByte];
      end;
    end;
    Buffer[116] := $00;
    Buffer[115] := $40;
    Buffer[114] := $90;
    Buffer[113] := $90;
    Buffer[112] := $00;
    Buffer[111] := $40;
    WriteLn('Create of UDPClient...');
    IdUDPClient := TIdUDPClient.Create(nil);
    try
      IdUDPClient.BroadcastEnabled := True;
      IdUDPClient.Host := '255.255.255.255';
      IdUDPClient.Port := 2050;
      IdUDPClient.SendBuffer(Buffer, 116);
      WriteLn('Trying to wake-up remote host: ' + MacAddress);
    finally
      IdUDPClient.Free;
    end;
  except
    on Problem: Exception do
    begin
      Windows.Beep(2000, 100);
      WriteLn('There was an error');
    end;
  end;
end;

begin
  if ParamCount > 0 then
  begin
    WakeUPComputer(ParamStr(1));
    Windows.Beep(1000, 100);
    WriteLn('Send');
  end
  else
  begin
    WriteLn('Press to any key');
    ReadLn;
  end;
end.
Что-то не то...
alekseiryzhakov вне форума Ответить с цитированием
Старый 23.09.2011, 15:43   #2
insecticide
Новичок
Джуниор
 
Регистрация: 23.09.2011
Сообщений: 1
По умолчанию

http://ru.wikipedia.org/wiki/Wake-on-LAN -> Код на Delphi
insecticide вне форума Ответить с цитированием
Старый 03.10.2011, 18:56   #3
alekseiryzhakov
Пользователь
 
Аватар для alekseiryzhakov
 
Регистрация: 22.12.2010
Сообщений: 14
Плохо

Цитата:
Сообщение от insecticide Посмотреть сообщение
Блин! Если вы этого ещё не поняли, то выше представленный мною код и есть модификация предложенного вами!!!
alekseiryzhakov вне форума Ответить с цитированием
Старый 20.08.2013, 09:13   #4
cluei2
Новичок
Джуниор
 
Регистрация: 27.08.2009
Сообщений: 1
По умолчанию

Цитата:
Сообщение от alekseiryzhakov Посмотреть сообщение
Здрасти! Вот есть такая тема, как послать широковещательную команду на пробуждение?
....
IdUDPClient.Host := '255.255.255.255';
....
Настолько широковещательный делать нельзя (роутеры обязаны рубить), и второе, смотри, какая маска твоей сети.
у меня не проходил запрос (indy, delphi) 192.168.9.255 при маске 255.255.0.0, зато прошел 192.168.255.255.

Может кому поможет.
cluei2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инсталляция по LAN Stilet Операционные системы общие вопросы 2 21.05.2010 10:03
вопрос по LAN,ADSL Elm0 Свободное общение 4 10.01.2009 19:19
LAN монитор Denager Работа с сетью в Delphi 15 03.12.2008 15:47