Latihan 1 dari materi Network Tools di Terminal di Terminal — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi dua function di kode awal. Variabel output dan baris-baris console.log di bawahnya sudah ada, biarkan saja.
parseNetstat(output): pecah output per baris, buang baris kosong, lalu pecah tiap baris di satu atau lebih spasi jadi empat kolom. Kembalikan array object { proto, local, foreign, state }, satu object per koneksi. Contoh: baris udp 0.0.0.0:53 0.0.0.0:* CLOSED menjadi { proto: "udp", local: "0.0.0.0:53", foreign: "0.0.0.0:*", state: "CLOSED" }, dan "tcp a b LISTEN\n\ntcp c d LISTEN" menghasilkan 2 entri, bukan 3.
filterByState(entries, state): kembalikan entri yang state-nya sama dengan state, tanpa peduli huruf besar kecil ("established" cocok dengan ESTABLISHED). Kalau gak ada yang cocok, kembalikan array kosong.
Dengan output di kode awal, console harus mencetak enam baris ini, berurutan: 4, tcp, 127.0.0.1:3000, LISTEN, 2, 1.
Hint
Tiap baris netstat di latihan ini punya empat kolom dengan urutan tetap: proto, alamat lokal, alamat tujuan, state. Jarak antar kolom bisa lebih dari satu spasi, dan baris kosong bukan koneksi.
parseNetstat: output.split("\n"), buang baris yang trim()-nya kosong, lalu map tiap baris ke object dari line.trim().split(/\s+/). filterByState: saring entri yang state-nya setelah toLowerCase() sama dengan state yang dicari setelah toLowerCase().
return output.split("\n").filter((line) => line.trim()).map((line) => { const [proto, local, foreign, state] = line.trim().split(/\s+/); return { proto, local, foreign, state }; }); lalu di filterByState: return entries.filter((e) => e.state.toLowerCase() === state.toLowerCase());
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...