local ip + delphi 2006 + indy

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
akipek
Üye
Mesajlar: 254
Kayıt: 24 Haz 2005 01:28

local ip + delphi 2006 + indy

Mesaj gönderen akipek »

Merhaba
delphi 2006 nın indy component setinden faydaanarak networkteki programın calistigi local ip numarasını nasıl ogrenebilirim.

Mesela ekranın en altında local ip nosu yazdırmak istiyorum.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Indy Kullanmadan şöyle :

Kod: Tümünü seç

// Uses Winsock
function LocalIP : String;
type
  TArrayPInAddr = array [0..10] of PInAddr;
  PArrayPInAddr = ^ TArrayPInAddr;
  var
  phe      : PHostEnt;
  pptr     : PArrayPInAddr;
  Buffer   : array [0..63] of char;
  i        : integer;
  GInitData: TWSADATA;
begin
  WSAStartup($101, GInitData);
  result := '';
  GetHostName(Buffer, sizeof(Buffer));
  phe := GetHostByName(Buffer);
  if phe=nil then
  begin
    exit
  end;
  pptr := PArrayPInAddr(phe^.h_addr_list);
  i := 0;
  while pptr^[i]<>nil do
  begin
    result := StrPas(inet_ntoa(pptr^[i]^));
    Inc(i);
  end;
  WSACleanup;
end;
Indy Kullanarak Şöyle :

Kod: Tümünü seç

// Uses TidIPWatch
function GetLocalIP: String;
Var
  IPWatch : TidIPWatch;
begin
  Result  := '0.0.0.0';
  IPWatch := TIdIPWatch.Create(nil);
  try
    IPWatch.HistoryEnabled := FALSE;
    IPWatch.Active := TRUE;
    if IPWatch.ForceCheck then
    begin
      Result := IPWatch.LocalIP;
    end;
    IPWatch.Active := FALSE;
  finally
    IPWatch.Free;
  end;
end;
Kullanımlarını tahmin edersin...

Kod: Tümünü seç

ShowMessage( LocalIP );
veya

Kod: Tümünü seç

ShowMessage( GetLocalIP );
Networkdeki programın bu şekilde kendi IP'sini öğrenir ve sana söyler...

- Networkdeki programın çalıştığı bilgisayarının network adını biliyorsan ondan da yola çıkarak öyle de IP'sini öğrenebilirsin. Buna gerek varsa söyle..
Resim
Resim ....Resim
akipek
Üye
Mesajlar: 254
Kayıt: 24 Haz 2005 01:28

Mesaj gönderen akipek »

yok teşekkürler bu sorunumu çözdü.
Cevapla