如何在一个局域网内控制其它电脑的开关?
在一个局域网内,如何控制其他机器的开机、关机,并且运行相关程序? 问题点数:0、回复次数:16Top
1 楼saien(精益求精)回复于 2003-11-04 19:55:32 得分 0
在Coms里设置即可,但必须的主板支持才行。Top
2 楼vagerent(上午的绝缘杯)回复于 2003-11-04 20:21:56 得分 0
如果想让其他电脑运行相关程序就得在对方机子上装木马阿Top
3 楼zhourongbiao(Edward)回复于 2003-11-04 20:53:39 得分 0
用个Server和client不就好了,在其他机器上装Server,控制机上装client,不过涉及知识较多,比如不同操作系统(98,2000)的关机操作就不同。Top
4 楼wj211sz()回复于 2003-11-04 22:07:53 得分 0
CMOS设置是在硬件方面,如何通过软件控制?让它关机就可以关机,让它开机就可以开机。
楼上先生说,装Server和Client,请能否再详细点?不同的操作系统调用的参数不同,这个我知道,前面的就不懂,请再详细点。。。谢谢Top
5 楼ncwuhh(愤怒中.....下辈子也要当官)回复于 2003-11-04 22:40:43 得分 0
跟你推荐一个软件"PCAnywhere",很好玩的,你试试。你只要在你的机子上装一个主控端,在你要控制的机子上装一个被控端就可以了.Top
6 楼yxlab()回复于 2003-11-04 22:47:34 得分 0
许多网络教室软件中有类似功能,可以参考一下。控制机发送消息给被控方,被控方收到后做出响应。Top
7 楼nmqhzh(昨夜风)回复于 2003-11-05 00:24:30 得分 0
严格的说,还是硬件控制好些,软件控件多多少少会带来新问题,如内存管理或软件冲突等。
新在的主板都支持通过网卡远程启动啊!Top
8 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2003-11-05 00:41:01 得分 0
主板和PCI网卡同时支持,激活WakeOnLAN就可以了
代码如下
program rwu;
{$APPTYPE CONSOLE}
uses
SysUtils, WinSock;
const
LEN_PHYSADDR = 6;
var
WSAData: TWSAData;
MSocket: TSocket;
SockAddrIn: TSockAddrIn;
RetVal, OptVal, i: Integer;
MacAddr: array[0..5] of Byte;
MagicData: array[0..101] of Byte;
Position: Longint;
SAddr: string;
{$R VERSION.RES}
function CheckWinSockResult(ResultCode: Integer; const FuncName: string): Integer;
begin
if ResultCode <> 0 then
begin
Result := WSAGetLastError;
Writeln(Format(#13#10'Windows socket error: %s (%d), on API ''%s''.',
[SysErrorMessage(Result), Result, FuncName]));
Halt;
end else Result := 0;
end;
begin
if ParamCount <> 1 then
begin
Writeln(#13#10'Remote Wake Up.'#13#10#13#10 +
'Usage: rwu ethernetaddress'#13#10#13#10 +
'Example: rwu 00-B0-D0-15-86-B4'#13#10#13#10 +
'This program is freeware.'#13#10 +
'Author: Vadim Crits'#13#10);
Halt;
end;
try
SAddr := Paramstr(1);
if Length(SAddr) <> 17 then Abort;
for i := 1 to Length(SAddr) do
if i in [3, 6, 9, 12, 15] then
if SAddr[i] <> '-' then Abort;
for i := 0 to High(MacAddr) do
begin
if Pos('-', SAddr) > 0 then
MacAddr[i] := StrToInt(HexDisplayPrefix + Copy(SAddr, 1, Pos('-', SAddr) - 1))
else
MacAddr[i] := StrToInt(HexDisplayPrefix + SAddr);
Delete(SAddr, 1, Pos('-', SAddr));
end;
except
Writeln(#13#10'Invalid Ethernet address.');
Halt;
end;
CheckWinSockResult(WSAStartup($0101, WSAData), 'WSAStartup');
MSocket := socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
if MSocket = INVALID_SOCKET then CheckWinSockResult(MSocket, 'socket');
OptVal := 1;
CheckWinSockResult(setsockopt(MSocket, SOL_SOCKET, SO_BROADCAST,
PChar(@OptVal), SizeOf(OptVal)), 'setsockopt');
FillChar(MagicData, SizeOf(MagicData), $FF);
Position := LEN_PHYSADDR;
while Position < SizeOf(MagicData) do
begin
Move(MacAddr, Pointer(Longint(@MagicData) + Position)^, LEN_PHYSADDR);
Inc(Position, LEN_PHYSADDR);
end;
SockAddrIn.sin_family := AF_INET;
SockAddrIn.sin_addr.S_addr := Longint(INADDR_BROADCAST);
RetVal := sendto(MSocket, MagicData, SizeOf(MagicData), 0, SockAddrIn, SizeOf(SockAddrIn));
if RetVal = SOCKET_ERROR then CheckWinSockResult(RetVal, 'sendto');
CheckWinSockResult(closesocket(MSocket), 'closesocket');
CheckWinSockResult(WSACleanup, 'WSACleanup');
end.Top
9 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2003-11-05 00:45:47 得分 0
使用网卡开机只能用MAC地址,那个IP没有意义的,也没有IP的存在
而其只能在LAN局域网使用的Top
10 楼XDvlper(XDeveloper)回复于 2003-11-05 02:50:22 得分 0
upTop
11 楼wj211sz()回复于 2003-11-05 02:56:11 得分 0
谢谢更多意见来Top
12 楼angelface(§<@#$&^%$>§)回复于 2003-11-05 08:23:12 得分 0
upTop
13 楼adminis(古董)回复于 2003-11-05 08:40:46 得分 0
C/S是可以控制关机,但开机好像不行吗?!
主板要支持网络唤醒!Top
14 楼txmjs(天地之间)回复于 2003-11-05 08:43:03 得分 0
superlanadmin这个软件看看Top
15 楼zhouzhouzhou(人生程序)回复于 2003-11-05 18:59:28 得分 0
關機了不能實現開機的
控制其他機器只有兩種可能:
一、安裝網管程序
二、超級用戶控制Top
16 楼mynetlife(爬虫)回复于 2003-11-05 19:22:42 得分 0
通过硬件或网络来实现控制不太好实现因为特定的硬件不一定都支持.
我觉得还是通过软件来管理比较好一些.网络管理软件或称远程控制软件都可以完成这些功能.
如果是出于恶意的,
那就叫木马了,PcAanywhere确实挺好的你可以试试。
Top




