Pingowanie portu UDP jest dość trudne, ponieważ per se nie ma połączeń . Jeśli nie masz kontroli nad zdalnym hostem, możesz naprawdę nigdy nie wiedzieć, czy twoje datagramy UDP są faktycznie odbierane. Zakładam, że wiesz już, czy zdalny host jest nieosiągalny, przez ping
, traceroute
, mtr
, itd. (Jeśli nie, sprawdź, czy pierwszy!)
Następnie, ponieważ nie masz netcat
, będziesz potrzebować jakiegoś sposobu generowania pakietów UDP.
bash
Shell wysyła pakiety UDP kiedy przekierować dane do specjalnego urządzenia /dev/udp/host/port
. Na przykład:
#!/bin/bash
host="10.10.10.10"
port=12345
echo "PING" >/dev/udp/$host/$port
Python oczywiście jest również w pełni zdolny do UDP, np
#!/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))
Niezależnie od tego, w jaki sposób zamierzasz wygenerować pakiet „ping” UDP, będziesz chciał wiedzieć, czy cel go otrzymał. Jeśli port docelowy jest otwarty (tzn. Usługa nasłuchuje na danym porcie), to co się stanie, będzie zdefiniowane przez aplikację. Mamy nadzieję, że zauważysz pewne zachowanie lub wskazania ze zdalnego systemu.
Jeśli port docelowy jest zamknięty (tzn. Żadna usługa nie nasłuchuje na tym porcie), powinieneś otrzymać w odpowiedzi pakiet błędów ICMP. Skorzystaj ze swojego ulubionego sieciowego sniffera przewodowego, aby go obejrzeć. A może twój system HP-UX rejestruje gdzieś błędy ICMP (przepraszam, nie mam doświadczenia z HP-UX).
Niestety, jeśli cel jest zaporą ogniową, możesz nie otrzymać odpowiedzi, gdy port docelowy jest zamknięty. Jedynym pewnym sposobem na sprawdzenie, czy zdalny host reaguje, jest uruchomienie aplikacji zależnej od danych UDP i obserwowanie ruchu sieciowego.