15 January 2016

Cara Mendapatkan IP Address Dan Nama PC Dengan Winsock

Sekarang saya akan coba membuat postingan mengenai bagaimana cara mendapatkan ip address dan nama pc kita tentunya dengan delphi,ya ini saya buat buat yang mau dan yang baru belajar delphi sama seperti saya.Yang saya tahu untuk cara mendapatkan ip yang kita dapat dari suatu koneksi di delphi yaitu dengan menggunakan winsock dan satu lagi dengan menggunakan komponen dari indy.
Dan untuk kali ini saya akan mencobanya membuat cara mendapatkan ip dan nama pc(nama komputer)dengan menggunakan winsock dan juga dilain waktu akan saya coba juga membuat suatu postingan dengan menggunakan komponen dari indy.

Langkah Pembuatannya

Sekarang saya akan memulai cara membuatnya biasa pertama buka aplikasi delphinya kemudian saya coba tambahkan beberapa komponen pada Form yang baru tersebut dimana komponen yang saya tambahkan adalah:
1. 2 buah Label.
2. 2 buah Edit.
3. 1 buah Button.
Yang mana untuk masing-masing label saya ganti captionnya pada object inspector untuk Label1 saya ganti dengan IP dan yang Label2 saya ganti dengan Nama PC dan yang Button saya ganti dengan GET,dan saya coba posisikan masing-masing komponen tersebut supaya enak dilihatnya saya coba posisikan seperti gambar dibawah ini
penambahan komponen pada form
Menambahkan Komponen Pada Form
Setelah itu saya coba ke code editor daripada delphi yang mana saya akan coba membuatnya atau menambahkan sebuah function dimana function tersebut yang akan memproses agar supaya ip dan nama pc bisa ditampilkan dan untuk menambahkan function tersebut saya tambahkan uses winsock kemudian baru saya tambahkan function dimana untuk function nya adalah sebagai berikut
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;
Saya tambahkan function tersebut dibawah implementation.Setelah saya tambahkan function kemudian saya buat procedure untuk Button dengan cara mengklik button 2X dan coba menambahkan sedikit kode pada procedure tersebut yang mana procedure button tersebut menjadi seperti dibawah ini
procedure TForm1.Button1Click(Sender: TObject);
var
  Host, IP, Err: String;
begin
  if GetIPFromHost(Host, IP, Err) then begin
    Edit1.Text := IP;
    Edit2.Text := Host;
    end
    else
      MessageDlg(Err, mtError, [mbOK], 0);
end;
tambahan kode  pada procedure button
Penambahan Kode Pada Procedure Button

Kemudian setelah saya buat procedure pada Button tersebut saya coba run atau tekan F9 untuk melihat hasilnya kemudian saya coba klik Button GET dan ternyata hasilnya seperti gambar dibawah ini
tes jalankan program ip address
Tes Run Program IP Address

Begitulah kira-kira cara untuk membuat mendapatkan ip dan nama PC dengan delphi sesuai dengan judul postingan kali ini,semoga postingan ini bisa bermanfa'at dan bisa teman-teman kembangkan lagi pada aplikasi yang dibuat teman-teman.

Oke Salam Blogger and Happy Koding.

No comments:

Post a Comment