Serverin Ethernet Mac Adresi Yada Disk No vs kontrolu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
athena
Üye
Mesajlar: 92
Kayıt: 20 Eyl 2003 06:32
Konum: Antalya
İletişim:

Serverin Ethernet Mac Adresi Yada Disk No vs kontrolu

Mesaj gönderen athena »

Selamlar,

Program kopya engeli konusunda sitede bir sürü yazı var ama hepsi tek makinada kontrol ile ilgili şeyler.

Benim istediğim client dan serverdeki bir programın kısayolu tıklanarak exesi çalıştığında serverin ethernet mac adresini yada serverin hdd nosu gibi bir kontrol.

Sitedeki tüm anlatılanlar hep exenin çalıştığı makinanın özelliklerini veriyor.
"Millete efendilik olmaz,hizmet olur,
kim Millete hizmet ederse,
o milletin efendisidir."
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Sunucu bilgisayar bilgilerini istersen bir dosyada tut ve program kopyalanınca sadece terminallerden çalışabilsin :) . Şaka bir yana soket kullanarak sunucu bilgilerini okuyabilirsin. Gerçi o durumda da güvenlik duvarları büyük problemler yaşatır. Bu konu beni biraz aşıyor ama gelecek cevaplar benimde işime yarayacak.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
mero
Üye
Mesajlar: 109
Kayıt: 04 Mar 2005 04:54

Mesaj gönderen mero »

Local ağdaki bir makinenin mac adresini alabilmeniz için:

unit kısmına 'winsock' ekleyin

function SendARP(DestIp: DWORD; srcIP: DWORD; pMacAddr: pointer; PhyAddrLen: Pointer): DWORD; stdcall; external
'iphlpapi.dll';

Kod: Tümünü seç

function getRemoteMacAdress(var address: string): Boolean;
var
  dwRemoteIP, SRIP: DWORD;
  PhyAddrLen: Longword;
  pMacAddr: array[0..1] of Longword;
  temp: array[0..5] of byte;
  I: Byte;
begin
  Result := false;
  dwremoteIP := inet_addr(@address[1]);
  if dwremoteIP <> 0 then
  begin
    PhyAddrLen := 6;

    if SendARP(dwremoteIP, SRIP, @pMacAddr, @PhyAddrLen) = NO_ERROR then
    begin
      if (PhyAddrLen <> 0) and (pMacAddr[0] <> 0) then
      begin
        Move(pMacAddr, temp, 6);
        address := '';
        for I := 0 to 5 do
        begin
          address := address + inttohex(temp[i], 2) + '-';
        end;

        Delete(address, Length(address), 1);
        Result := true;
      end;
    end;
  end;
end;
Kullanımı:

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
  mac: string;
begin
  mac := '10.0.0.2';
  getRemoteMacAdress(mac);
  ShowMessage(mac);
end;
Cevapla