Ping port UDP agak rumit, karena tidak ada koneksi , per se. Jika Anda tidak memiliki kendali atas host jarak jauh, maka Anda mungkin tidak pernah benar-benar tahu apakah datagram UDP Anda benar-benar diterima. Saya berasumsi Anda sudah tahu apakah remote host dapat dicapai, melalui ping
, traceroute
, mtr
, dll (Jika tidak, periksa pertama!)
Selanjutnya, karena Anda tidak punya netcat
, Anda perlu cara menghasilkan paket UDP.
The bash
shell mengirimkan paket UDP ketika Anda mengarahkan data ke perangkat khusus /dev/udp/host/port
. Sebagai contoh:
#!/bin/bash
host="10.10.10.10"
port=12345
echo "PING" >/dev/udp/$host/$port
Python, tentu saja, juga sepenuhnya mampu UDP, misalnya
#!/bin/python
import socket
host="10.10.10.10"
port=12345
udp_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_sock.sendto('PING', (host, port))
Terlepas dari bagaimana Anda membuat paket UDP "ping", Anda pasti ingin tahu apakah target menerimanya. Jika port target terbuka (yaitu layanan mendengarkan di port yang diberikan), maka apa yang terjadi akan ditentukan oleh aplikasi. Mudah-mudahan, Anda akan melihat beberapa perilaku atau indikasi dari sistem jarak jauh.
Jika port target ditutup (yaitu tidak ada layanan mendengarkan di port itu), maka Anda harus mendapatkan paket kesalahan ICMP kembali sebagai respons. Gunakan sniffer jaringan tingkat-kawat favorit Anda untuk melihatnya. Atau, mungkin sistem HP-UX Anda mencatat kesalahan ICMP di suatu tempat (maaf, saya tidak punya pengalaman dengan HP-UX).
Sayangnya, jika target di-firewall, Anda mungkin tidak mendapatkan respons ketika port target ditutup. Satu-satunya cara jitu untuk mengetahui apakah host jarak jauh responsif adalah dengan menjalankan aplikasi Anda yang bergantung pada data-UDP dan mengawasi lalu lintas jaringan.