CAYBURG.NET
Programlama Dilleri Delphi, Visual Basic, C, C++,C#, ASP, Perl, Php, Html vb. diller hakkında bilgi ve birikimlerinizi paylaşabilir ve yardım alabilirsiniz.
Cevapla
Delphi ile bilgisayarı açma Bu konu 265 defa okundu ve 4 yorum yazildi.
 
Seçenekler
Alt 08.11.2007, 18:39 Swipe - MSN üzeri Mesaj gönder #1
Silver Members

Delphi ile bilgisayarı açma


Wake On Lan - Kapalı Bir Bilgisayarı Lan’dan Uyandırma
Kapalı Bir Bilgisayarı Uyandırma

Wake on LAn nedir? Wake on Lan (wol) adından da anlaşılacağı gibi bir PC’yi
network üzerinden açmak için data packetinin gönderilmesidir


Daha da açarsak kısaca şöyel denebilir. Bir networkünüz var ve makinalrı gece açıp bişiler yüklemek istiyosunuz ki sabah tüm kullanıcılarda güncel yazılımlar olsun. mesela antivirüs updateleri gibi...

İşte bu sebeple herhangi bir PC’ye gönderilen özel bir data paketi sayesinde makinaları açabilirsiniz. Yükleme isi ise özel bir tool ile yapılabilir tabiki... Şimdi teknik detaylaroına bakalım..

Bir PC’yiuzaktan açabilmek için öncelikle o PC de bir ethernet kartı olmalı ve networke bağlı olması gerekmektedir. Bundan sonra ise O ethernet kartının WoL özelliğinin olması ve biostan enable hale getirilmiş olması gerekmektedir. Ethernet Kartı eğerki onboard değil ise 3 pinli konnektörünün anakarta bağlı olması da gerekmektedir. Tümleşik karlarda buna zaten gerek olmamaması da normaldir

Neyse buraya kadar donanımsal kısımdı. Şimdi ise wol packetinden bahsedelim. Öncellikler wakeonlan paketi UDP pakettir. Yani böyle bir paketi kolaylıkla kendinizde oluşturabilirsiniz. Elinizde sadece UDP komponenti olması yeterli. şimdi de paketin içinden bahsedelim.
Bu paket çok basit ve toplam 102 byte’lıktır.
format ise şöyledir.

ilk 6 byte "FF" leden oluşur geri kalan ise açılacak bilgisayarın MAC adresinin 16 kez tekrarlanması ile oluşur.
MAC adresimiz 11h 22h 33h 44h 55h 66h olsun. paket şöyle olur.

FF FF FF FF FF FF 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66

işteee yukardaki paketi bir wake up paketidir.
pekii bu paketi nereye yollayacağız ve nasıl??

Yukarıdaki paketi "broadcast" yada "directed-broadcast" olarak yollarsanız orada bulunan 11 22 33 44 55 66 mac adresine sahip makina açılır...

Şimdi broadcast ne demek? gidecek paketi ip adresi olarak 255.255.255.255 e yollamak demek bu paketin broadcast olduğu anl***** gelir. yani bu paket, paketin yolladnığı segmentteki her yere gider fakata routerdna geçemez ve orda kalır. yani başka segmentteki makinayı açamazsınız..

Bu işi aşmak için directed broadcast kulllanılarbilir. directed broadcast kısaca şöle denebilir.
iki network var : 192.168.0.0/255.255.255.0 ve 192.168.1.0/255.255.255.0
şimdi bu 192.168.0.0 networkündeki makinanın 192.168.1.0 daki bir makinayı açması için 255.255.255.255 paketi göndermesi faydasızdır.
Bu sebeple istenen networkteki makinaya o networke ait broadcast adresi ile yollamak gerek.

yaniii... 192.168.0.255 veya 192.168.1.255 adreslerini kullanarak bu paketi göndermek gerekir.

fazla karışık ise anlamanız için size delphi sourcelarını da yazayım..

urada da delphi de yazılmış bazı kodlar var.
bu iş için forma 4 tane label, 4 tane edit box, 1 status bar, 1 bitbtn ve 1 tane da indy UDP client koymanız gerek. )


1nci edit box MAC adresi
2nci edit box tahmini makinanın ip adresini
3ncü edit box subnet maskını
4ncü remottaki gidilecek ise port numarası.

arkadaşlar bu işlemin çalışması için ya routerlarda interfacelere
ip directed broadcast yada ip forward-protocol udp [port number] komutlarının girtilmesi gerek. Komutlar cisco ve nortellerde hemen hemen aynı..

PHP Kodu:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, NMUDP, IdBaseComponent, IdComponent, IdUDPBase,
IdUDPClient, Buttons, ComCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
UDP1: TIdUDPClient;
BitBtn1: TBitBtn;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
StatusBar1: TStatusBar;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

//************************************************** **
////////HEX TO INT/////////////////
Function hexToInt(const hexStr: string): longint;
var
iNdx: integer;
cTmp: Char;
begin
Result := 0;
for iNdx := 1 to Length(hexStr) do
begin
cTmp := hexStr[iNdx];
case cTmp of
’0’..’9’: Result := 16 * Result + (Ord(cTmp) - $30);
’A’..’F’: Result := 16 * Result + (Ord(cTmp) - $37);
’a’..’f’: Result := 16 * Result + (Ord(cTmp) - $57);
else
raise EConvertError.Create(’Geçersiz karakter’);
end;
end;
end;

////////////////WAKE UP FUNC////////////////////

procedure WakeUPComputer(ip,tmpst: string);
var Cpt, Cpt1: Byte;
tcnt:integer;
tswake1 :string;
tiwake : integer;
stwake : string;
buff1 : array [1..102] of byte;
Buff:Array[1..6] Of Byte;
begin
form1.StatusBar1.SimpleText:=’WOL is sent to ’+ip;
tcnt:=length(tmpst);
for tiwake:=1 to tcnt do
if (tiwake/2) <> trunc(tiwake/2) then
begin
tswake1:=tmpst[tiwake]+tmpst[tiwake+1];
buff[trunc(tiwake/2)+1]:=(hextoint(tswake1));
end;
Buff1[1] := $FF;
Buff1[2] := $FF;
Buff1[3] := $FF;
Buff1[4] := $FF;
Buff1[5] := $FF;
Buff1[6] := $FF;
for Cpt1 := 1 to 16 do
for Cpt := 1 to 6 do
Buff1[7 + (Cpt1 - 1) * 6 + (Cpt - 1)] := Buff[Cpt];
form1.udp1.ReceiveTimeout:=100;
setlength(stwake,102);
for cpt:=1 to 102 do stwake[cpt]:=chr(buff1[cpt]);
form1.udp1.Send(ip,sizeof(stwake),stwake);
end;

////////////////broadcast adrr func////////////////////
function calcbroad(ip,sub:string):string;
var S1,S2,S3,S4:INTEGER;
I1,I2,I3,I4:INTEGER;
begin
S1:=255-STRTOINT(COPY(SUB,1,POS(’.’,sub)-1));
DELETE(SUB,1,POS(’.’,sub));
S2:=255-STRTOINT(COPY(SUB,1,POS(’.’,sub)-1));
DELETE(SUB,1,POS(’.’,sub));
S3:=255-STRTOINT(COPY(SUB,1,POS(’.’,sub)-1));
DELETE(SUB,1,POS(’.’,sub));
S4:=255-STRTOINT(SUB);

I1:=STRTOINT(COPY(IP,1,POS(’.’,ip)-1));
DELETE(IP,1,POS(’.’,ip));
I2:=STRTOINT(COPY(IP,1,POS(’.’,ip)-1));
DELETE(IP,1,POS(’.’,ip));
I3:=STRTOINT(COPY(IP,1,POS(’.’,ip)-1));
DELETE(IP,1,POS(’.’,ip));
I4:=STRTOINT(IP);
calcbroad:=inttostr(i1 or s1)+’.’+inttostr(i2 or s2)+’.’+inttostr(i3 or s3)+’.’+inttostr(i4 or s4);
end;

///////////////////////////////////////////////////
procedure TForm1.Button1Click(Sender: TObject);
var C,broad,MAC,ip,sub:string;
i:integer;
S1,S2,S3,S4:INTEGER;
I1,I2,I3,I4:INTEGER;
begin
MAC:=edit1.Text;
broad:=calcbroad(edit2.Text,edit3.Text) ;
udp1.active:=false;
udp1.Port:=strtoint(edit4.Text);
udp1.Active:=true;
//showmessage(broad+’:’+mac);
if length(MAC)=12 then wakeupcomputer(broad,MAC) ELSE SHOWMESSAGE(’ERROR ON MAC’);
udp1.Active:=false;
end;
Alt 25.04.2008, 02:34 bozodaglarda - MSN üzeri Mesaj gönder #2
Üniversite 3. Sinif
abi mükemmelsin sağol emeğine sağlık..
Alt 25.04.2008, 11:23 #3
Ilkokul 7. Sinif
tesekkürler
Alt 26.04.2008, 21:36 #4
Banned
saol....................
Alt 16.03.2009, 12:51 #5
Lise 2. Sinif
Teşekkürler sayın hocam
Cevapla

Seçenekler

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB Kodlari Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı


Benzer Konular
Konu Konuyu Başlatan Forum Cvp Son Mesaj
Delphi 7.0 Full E-Book ..(No-Rapid) ADANALI_01 Programlama Dilleri 32 02.06.2009 10:55
delphi örnekleri botemusti Silinen Konular ve Mesajlar 4 20.03.2009 00:00
Delphi Görsel Eğitim Videoları Swipe Programlama Dilleri 11 09.09.2008 09:00
Delphi 7 E-Book Türkçe (1273 sayfa) poppy E-Kitap 4 29.08.2008 13:36
Delphi 7 Görsel Eğitim Seti alicme E-Kitap 1 06.06.2008 10:24

WEZ Format +2. Şuan Saat: 11:14.
Cayburg - Arşiv - Top - Iyiler - Web Stats
Rapidshare Uploaded.to Uptal.com Upshare.NET Filefactory.com Videolari, Video izle Fun, Fan Anket WinRAR | File Hosting Free Kurd Radyo Dinle Bedava Albüm Indir Yeni Albüm Albüm Paylasim .Net .Org
Powered by vBulletin® Version 3.8.1 Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197