我想知道 HP-UX 机器是否可以使用 UDP 与特定端口上的远程机器(我无法控制)进行通信。
我试过 telnet,但它看起来不支持 UDP。我会使用 netcat,但我找不到任何包。这台机器正在生产中,所以我不想过多地编译或安装东西......(nmap,来自源代码的netcat......)
有什么简单的方法可以做到这一点?
Ste*_*day 17
Ping UDP 端口有点棘手,因为本身没有连接。如果您无法控制远程主机,那么您可能永远不会真正知道您的 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
Run Code Online (Sandbox Code Playgroud)
当然,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))
Run Code Online (Sandbox Code Playgroud)
无论您如何设计生成 UDP“ping”数据包,您都会想知道目标是否收到了它。如果目标端口是开放的(即服务正在给定端口上侦听),那么发生的事情将由应用程序定义。希望您会注意到远程系统的某些行为或指示。
如果目标端口关闭(即没有服务在该端口侦听),那么您应该收到一个 ICMP 错误数据包作为响应。使用您最喜欢的有线级网络嗅探器来观察它。或者,也许您的 HP-UX 系统在某处记录了 ICMP 错误(抱歉,我对 HP-UX 没有任何经验)。
不幸的是,如果目标设置了防火墙,当目标端口关闭时您可能不会收到响应。知道远程主机是否有响应的唯一可靠方法是运行依赖于 UDP 数据的应用程序并观察网络流量。
小智 10
您可以使用 netcat
. 在 OSX 中,这是我的命令:
$ nc -vnzu <IP> <PORT>
found 0 associations
found 1 connections:
1: flags=82<CONNECTED,PREFERRED>
outif (null)
src <SOURCE IP> port <SOURCE PORT>
dst <DEST IP> port <DEST PORT>
rank info not available
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
106364 次 |
最近记录: |