回答:
UDPポートへのPingは、本質的に接続がないため、一種の注意が必要です。リモートホストを制御できない場合、UDPデータグラムが実際に受信されているかどうかを実際に知ることはできません。私は経由して、すでにリモートホストが到達可能であるかどうかを知っていると仮定ping
、traceroute
、mtr
、など(ない場合は、その最初のチェック!)
次に、がないためnetcat
、UDPパケットを生成する何らかの方法が必要になります。
bash
あなたは特別なデバイスにデータをリダイレクトする場合、シェルは、UDPパケットを送信します/dev/udp/host/port
。例えば:
#!/bin/bash
host="10.10.10.10"
port=12345
echo "PING" >/dev/udp/$host/$port
もちろん、PythonもUDPに完全に対応しています。たとえば、
#!/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))
UDP "ping"パケットを生成する方法に関係なく、ターゲットがそれを受信したかどうかを知りたいでしょう。ターゲットポートが開いている(つまり、サービスが指定されたポートでリッスンしている)場合、何が起こるかはアプリケーションで定義されます。うまくいけば、リモートシステムから何らかの動作または兆候に気付くでしょう。
ターゲットポートが閉じている場合(つまり、そのポートでリッスンしているサービスがない場合)、応答としてICMPエラーパケットを取得する必要があります。お気に入りのワイヤーレベルのネットワークスニファーを使用して監視します。または、おそらくHP-UXシステムがICMPエラーをどこかにログに記録します(すみません、HP-UXの経験はありません)。
残念ながら、ターゲットがファイアウォールで保護されている場合、ターゲットポートが閉じられたときに応答が得られない場合があります。リモートホストが応答するかどうかを確認する唯一確実な方法は、UDPデータ依存アプリケーションを実行し、ネットワークトラフィックを監視することです。