Chapter 1 — Python Network Programming Cookbook Second Edition (Translate Indonesia) | Mendapatkan alamat IP dari remote mechine

Chalid Ade Rahman
2 min readMar 24, 2019

--

Chapter 1

Sockets, IPv4, and Simple Client/Server Programming

1. Tujuan :

Adapun materi dalam praktikum ini diantaranya :

  1. Mencetak hostname dan alamat IPv4 Komputer
  2. Mendapatkan alamat IP dari remote mechine
  3. Mengonversi alamat IPv4 ke dalam format lainya
  4. Menemukan nama layanan, diberi port dan protokol
  5. Mengubah integer ke dan dari host ke urutan byte jaringan
  6. Mengatur dan mendapatkan batas waktu soket default
  7. Menangani socket error dengan baik
  8. Memodifikasi ukuran buffer
  9. Mengubah soket ke mode pemblokiran / non-pemblokiran
  10. Menggunakan kembali alamat soket
  11. Mencetak waktu terkini dari time server internet
  12. Membuat Program SNTP Client
  13. Membuat aplikasi client/ server TCP sederhana
  14. Membuat aplikasi client / server UDP sederhana

2. Percobaan

Mendapatkan Alamat IP Dari Remote Machine

Terkadang, kita butuh men-translate hostname dan ip address dari remote mechine. Misalnya, untuk pencarian ip address dari nama domain. Berikut adalah cara sederhana untuk melakukan hal tersebut.

Cara Melakukannya :

Jika Anda telah mengetahui IP Address dari remote mechine, anda dapat menggunakan fungsi built-in library, gethostname(). Pada case ini, anda harus melewatkan remote host sebagai parameternya.

Pada kasus ini, kita butuh memanggil fungsi gethostbyname(). Perhatikan short code berikut :

Listing 1.2. Menampikan informasi IP Address dari remote mechine:

#!/usr/bin/env python

# This program is optimized for Python 2.7.12 and Python 3.5.2.

# It may run on any other version with/without modifications.

import socket

def get_remote_machine_info():

remote_host = ‘www.python.org'

try:

print (“IP address of %s: %s” %(remote_host, socket.gethostbyname(remote_host)))

except socket.error as err_msg:

print (“%s: %s” %(remote_host, err_msg))

if __name__ == ‘__main__’:

get_remote_machine_info()

Jika Anda jalankan code tersebut akan muncul tampilan berikut :

Bagaimana Cara Kerjanya :

Listing program diatas menggunakan method gethostbyname() didalam uuser-defined function yang dipanggil dalam fungsi get_remote_mechine_info(). Disini kita diperkenalkan dengan notion of exception handling. Seperti yang kalian lihat, kita membungkus fungsi main yang dipanggil didalam try-except block. Artinya, jika terjadi error saat mengeksekusi program dari fungsi ini, error tersebut akan diarahkan pada fungsi try-except block.

Contohnya, coba kita rubah nilai dari remote_host dan menggantinya dengan https://www.python.org/ dengan web yang memang tidak tersedia, contohnya, www.pytgo.org.

#!/usr/bin/env python

def get_remote_machine_info():

remote_host = ‘www.pytgo.org'

try:

print (“IP address of %s: %s” %

(remote_host,

socket.gethostbyname(remote_host))) except socket.error as err_msg:

print (“%s: %s” %(remote_host, err_msg))

if __name__ == ‘__main__’:

get_remote_machine_info()

Ketika di run, maka akan muncul tampilan seperti berikut :

$ python 1_2_remote_machine_info.py

www.pytgo.org: [Errno -2] Name or service not known

Function try-excerpt akan menampilkan pesan kesalahan atau error akibat no IP yang tidak terdaftar, www.pytgo.org

--

--

Chalid Ade Rahman
Chalid Ade Rahman

Written by Chalid Ade Rahman

PHP Programmer | PT Electronic Data Interchange Indonesia | Question : chalidade@gmail.com

No responses yet