Chapter 1 — Python Network Programming Cookbook Second Edition (Translate Indonesia) | Menampilkan Waktu Terkini dengan NTP Server
Chapter 1
Sockets, IPv4, and Simple Client/Server Programming
1. Tujuan :
Adapun materi dalam praktikum ini diantaranya :
- Mencetak hostname dan alamat IPv4 Komputer
- Mendapatkan alamat IP dari remote mechine
- Mengonversi alamat IPv4 ke dalam format lainya
- Menemukan nama layanan, diberi port dan protokol
- Mengubah integer ke dan dari host ke urutan byte jaringan
- Mengatur socket timeout dari settingan default
- Menangani Error Socket Handling
- Memodifikasi ukuran buffer
- Mengubah soket ke mode pemblokiran / non-pemblokiran
- Menggunakan kembali alamat soket
- Mencetak waktu terkini dari NTP Server
- Membuat Program SNTP Client
- Membuat aplikasi client/ server TCP sederhana
- Membuat aplikasi client / server UDP sederhana
2. Percobaan
Menampilkan Waktu Terkini dengan NTP Server
Banyak program yang membutuhkan keakurasian waktu, seperti perintah make pada UNIX. Waktu pada komputer anda bisa saja berbeda sehingga dibutuhkan singkronisasi dengan waktu server lainya dalam jaringan Anda.
Persiapan
Salah satu cara mensingkronkan waktu komputer anda adalah dengan menggunakan salah satu waktu server dari internet. Anda dapat menulis dalam bahasa Python untuk client dalam menyelesaikan masalah tersebut. Salah satu caranya adalah menggunakan, ntplib. Dengan ini, komunikasi antara client/server dapat bejalan baik dengan menggunakan Network Time Protokol (NTP). Jika ntplib belum terinstall di komputer Anda, anda dapat menginstallnya dari Pypi dengan perintah pip atau easy_install:
$ pip install ntplib
Jika pip belum terinstall di komputer anda, Langkah pertama adalah mengintallnya sebelum mengjalankan perintah diatas. Di Debian Linux biasanya Ubuntu, Menginstall pip dapat dilakukan dengan cara berikut :
$ sudo apt install python-pip
Perlu dicatata bahwa Jika Anda menggunakan Python 3, maka anda perlu menginstallnya secara terpisah. Artinya kedua pip tersebut dijalankan secara terpisah. Begitu juga jika Anda menggunakan Python 2. Biasanya untuk menginstall Python 3 dilakukan dengan cara berikut :
$ sudo apt-get install python3-pip
Begitu juga, ntplib juga butuh di install di python3-pip secara terpisah seperti berikut :
$ pip3 install ntplib
Cara bagus juga jika Anda ingin mengupgrade pip versi lama. Jika masih menggunakan versi lama, hal ini dapat diselesaikan dengan cara mengikuti perintah berikut :
$ pip install — upgrade pip
Atau
$ pip3 install — upgrade pip
Jika anda menggunakan Python 2 dan Python 3 maka keduanya harus terinstal bersamaan di komputer anda.
Bagaimana Cara Melakukannya
Kita akan membuat NTPClient yang kemudian memanggilnya dengan metod request() dan di lewatkan ke alamat dari NTP Server.
Listing 1.11. Menampilkan waktu sekarang dari waktu server internet.
#!/usr/bin/env python
# Python Network Programming Cookbook, Second Edition — Chapter — 1
# 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 ntplib
from time import ctime
def print_time():
ntp_client = ntplib.NTPClient()
response = ntp_client.request(‘pool.ntp.org’)
print (ctime(response.tx_time))
if __name__ == ‘__main__’:
print_time()
Pada setiap komputer, cara ini akan menampilkan keluaran seperti berikut :
$ python 1_11_print_machine_time.py
Fri Jun 2 16:01:35 2017
Bagaimana Cara Kerjanya
NTP Client telah dibuat dan permintaan NTP sudah dikirim ke internet NTP Server, pool.nntp.org. Fungsi chtime() ini digunakan untuk menampilkan respons dari NTP server.