Arsip: Ask: How To Get Local IP ?

 
user image
more 18 years ago

cyber_hecker

hwaaa... mo minta tolong neh ? gimana sih caranya untuk mengetahui ip local komputer kita ? gue udah nyoba banyak cara mulai dari :
function TForm1.LocalIP: string;
type
   TaPInAddr = array [0..10] of PInAddr;
   PaPInAddr = ^TaPInAddr;
var
    phe: PHostEnt;
    pptr: PaPInAddr;
    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 Exit;
    pptr := PaPInAddr(Phe^.h_addr_list);
    i := 0;
    while pptr^[i] <> nil do
    begin
      result:=StrPas(inet_ntoa(pptr^[i]^));
      Inc(i);
    end;
    WSACleanup;
end;
function GetIPFromHost
(var HostName, IPaddr, WSAErr: string): Boolean; 
type 
  Name = array[0..100] of Char; 
  PName = ^Name; 
var 
  HEnt: pHostEnt; 
  HName: PName; 
  WSAData: TWSAData; 
  i: Integer; 
begin 
  Result := False;     
  if WSAStartup($0101, WSAData) <> 0 then begin 
    WSAErr := 'Winsock is not responding."'; 
    Exit; 
  end; 
  IPaddr := ''; 
  New(HName); 
  if GetHostName(HName^, SizeOf(Name)) = 0 then
  begin 
    HostName := StrPas(HName^); 
    HEnt := GetHostByName(HName^); 
    for i := 0 to HEnt^.h_length - 1 do 
     IPaddr :=
      Concat(IPaddr,
      IntToStr(Ord(HEnt^.h_addr_list^[i])) + '.'); 
    SetLength(IPaddr, Length(IPaddr) - 1); 
    Result := True; 
  end
  else begin 
   case WSAGetLastError of
    WSANOTINITIALISED:WSAErr:='WSANotInitialised'; 
    WSAENETDOWN      :WSAErr:='WSAENetDown'; 
    WSAEINPROGRESS   :WSAErr:='WSAEInProgress'; 
   end; 
  end; 
  Dispose(HName); 
  WSACleanup; 
end;
function LWToIP(LW: LongWord): string;
begin
  Result := IntToStr(LW and $FF);
  LW := LW shr 8;
  Result := Result + '.' + IntToStr(LW and $FF);
  LW := LW shr 8;
  Result := Result + '.' + IntToStr(LW and $FF);
  LW := LW shr 8;
  Result := Result + '.' + IntToStr(LW and $FF);
end;
function TForm1.GetLocalIP: string;
var
  name, A: PChar;
  h: hostent;
  I: Integer;
begin
  GetMem(name,255);
  try
    I := GetHostName(name,255);
    if I <> 0 then
      I := wsagetlastError;
    if I <> 0 then
      StatusBar1.Panels[0].Text := 'Error: ' + IntToStr(I)
    else
    begin
      h := GetHostByName(name)^;
      if h.h_length <> 4 then Result := ''
      else
      begin
        A := h.h_addr_list^;
        I := 0;
        while (A^ <>#0)and (CompareStr(A,h.h_name) <> 0) do
        begin
          inc(I,4);
          Inc(A,4)
        end;
        if I < 4 then
        begin
          Result := h.h_name
        end
        else
        begin
          while I >= 4 do
          begin
            Dec(A,4);
            Dec(I,4);
            Result := Result + LWToIP(PLongWord(A)^) + ', ';
          end;
          Delete(Result,Length(Result)-1,2);
        end
      end
    end
  finally
    FreeMem(name)
  end
end;
semuanya gak ada yang berhasil.. dan error yang muncul juga sama yaitu : gimana neh... ? salahnya dimana yach :( hwaaaaa
user image
more 18 years ago

LuriDarmawan

fungsi diatas benar kok, diriku pake skrip yang kedua yang diatas. kemungkinan error karena koding yg lain, bisa jadi cara pemanggilan fungsinya. ingat, fungsi tertulis
function GetIPFromHost(var HostName, IPaddr, WSAErr: string)
bukan
function GetIPFromHost( HostName, IPaddr, WSAErr: string)
user image
more 18 years ago

ZeAL

Daripada pusing2, pake aja komponen NMMSGServ di tab FastNet (Gue pake Delphi 6). Masukin deh tu komponen, trus panggil aja langsung..
showmessage( NMMSGServ1.LocalIP );
Gampang thoo... Hasil yang didapet sama tapi gak usah pusing2 bikin kode.. :D
user image
more 18 years ago

LuriDarmawan

ini source yang tak ubah dikit jadi komponen sudah tak upload-kan. silahkan di download. skrinsot-nya: download di : http://pascal-id.org/dpr/Downloads-index-req-viewdownloaddetails-lid-79.pas
user image
more 18 years ago

cyber_hecker

weh tenkyu semua. akhirnya gue milih cara yang di saran in ama zeal :P wah ternyata ada yang lebih gampang ya :P. bener..dari pada repod.. lebih baik ambil apa yang sudah di sediakan. wakakak :D
user image
more 18 years ago

LuriDarmawan

memang gampang sekali sih.. tp kebetulan saja diriku ga suka sebagian komponen bawaan delphi, termasuk komponen FastNET tp dipersilahkan sih yah.. itu jadi soal kebiasaan kebiasaan
user image
more 18 years ago

cyber_hecker

oot : buat kenal lebih dekat. wakakak :D kenapa seh om kok gak suka pake komponen bawaan delphi ???, padalah klo saya lebih suka komponen bawaan delphi. mau tau kenapa ?? karena pengalaman diriku ini yang gak punya komputer ini. kan kadang-kadang ada temen-temen yang minta bantu bikin program. ya terpaksa deh pindah dari kost yang satu ke kost yang lain. dan berarti ganti komputer juga. sedangkan komponen-komponen 3rd party yang ku gunakan tidak pernah ku manage dengan baik. biasanya seh sekali pake master komponen ku langsung ilang. wakakak :D jadi kalo mo bikin program dengan dasar program yang lalu santai aja. kan komponen standard. wakakaka :D
user image
more 17 years ago

paNda

waduh...aku baru belajar delphi nech..pengen tw dunk cara dari awal ngebuat scanner IP LAN...plus cara ngeblock IP yg lagi liat folder Share kita??thx berat ya.... :?: :P
user image
more 17 years ago

adit4it

@paNda coba aja didownload yg dikasi Mas LuriDarmawan..... liat aja script nya.. mungkin bisa belajar dari situ.... hehehehehe :D
user image
more 17 years ago

simba

Bukan component, tapi kumpulan fungsi2 membaca identitas komputer... http://delphindo.wordpress.com/2006/06/13/membaca-identitas-komputer/
more ...
  • Pages:
  • 1
  • 2
Share to

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com