Pc banlama pramda?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Shou
Üye
Mesajlar: 260
Kayıt: 26 Ağu 2011 02:00

Pc banlama pramda?

Mesaj gönderen Shou »

Merhabalar delphi'de yaptıgımız connectoru açtıgımızda mysql'a veritabanı oluşturuyoruz "Mac" adresini ve ip adresini şimdi buraya kadar sorun yok fakat oluşturdugumuz mac adresinin nasıl connector'u açmasını engelleyebiliriz?

ve'ya oyundan dc verdirtebiliriz 5 sn de bir kontrol edip on@login'de ama aklımda ki fikir şu ;

Kod: Tümünü seç

# Connector açılınca "Mac" ile "ip" adresi veritabanina göndericek,
# Oyuna girdiginde ip adresinden "Mac" adresini tag'a vericek,
# Sonraki işlemde kişiyi banlamak istiyorsa o mac adresini banlı diye göstericek,
# Bidahaki Oyuna girişte if ile sorgulatıp banlıysa oyundan atıcak..
Mac Fonksiyonumuz ;

Kod: Tümünü seç

function GetMACAdress: string;
var
NCB: PNCB;
Adapter: PAdapterStatus;
 
URetCode: PChar;
RetCode: char;
I: integer;
Lenum: PlanaEnum;
_SystemID: string;
TMPSTR: string;
begin
Result    := '';
_SystemID := '';
Getmem(NCB, SizeOf(TNCB));
Fillchar(NCB^, SizeOf(TNCB), 0);
 
Getmem(Lenum, SizeOf(TLanaEnum));
Fillchar(Lenum^, SizeOf(TLanaEnum), 0);
 
Getmem(Adapter, SizeOf(TAdapterStatus));
Fillchar(Adapter^, SizeOf(TAdapterStatus), 0);
 
Lenum.Length    := chr(0);
NCB.ncb_command := chr(NCBENUM);
NCB.ncb_buffer  := Pointer(Lenum);
NCB.ncb_length  := SizeOf(Lenum);
RetCode         := Netbios(NCB);
 
i := 0;
repeat
Fillchar(NCB^, SizeOf(TNCB), 0);
Ncb.ncb_command  := chr(NCBRESET);
Ncb.ncb_lana_num := lenum.lana[I];
RetCode          := Netbios(Ncb);
 
Fillchar(NCB^, SizeOf(TNCB), 0);
Ncb.ncb_command  := chr(NCBASTAT);
Ncb.ncb_lana_num := lenum.lana[I];
// Must be 16
Ncb.ncb_callname := '*               ';
 
Ncb.ncb_buffer := Pointer(Adapter);
 
Ncb.ncb_length := SizeOf(TAdapterStatus);
RetCode        := Netbios(Ncb);
//---- calc _systemId from mac-address[2-5] XOR mac-address[1]...
if (RetCode = chr(0)) or (RetCode = chr(6)) then
begin
_SystemId := IntToHex(Ord(Adapter.adapter_address[0]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[1]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[2]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[3]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[4]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[5]), 2);
end;
Inc(i);
until (I >= Ord(Lenum.Length)) or (_SystemID <> '00-00-00-00-00-00');
FreeMem(NCB);
FreeMem(Adapter);
FreeMem(Lenum);
GetMacAdress := _SystemID;
end;
Bu Mac Fonksiyonunu Nasıl Kullanabiliriz + Mysql Veritabanına Nasıl Bilgi Göndeririz?
Şimdiden Teşekkürler..
Cevapla