通过 XR300 路由器的 PHP 套接字连接到收据打印机

通过 XR300 路由器的 PHP 套接字连接到收据打印机

我有一个 PHP 应用程序正在尝试通过我的路由器打开到打印机的套接字连接。

需要注意的几点是 - 我的网络技能不足,所以我可能会忽略一些显而易见的东西,或者这可能无法按照我想要的方式实现。话虽如此,我已经对这个问题进行了大量搜索,但似乎找不到任何有这个确切问题的人(只是很多人试图远程 SSH)。我还知道我尝试连接的设备工作正常,因为我有一个小型的 nodejs 应用程序,它在本地网络上成功打开了与它的连接。最后,我正在使用 Docker 在本地运行 PHP 应用程序,这可能与我的问题有关(尽管我知道由于日志,连接正在到达路由器)。

代码很简单:

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($socket, SOL_TCP, SO_DEBUG, 1);

$server_connect = socket_connect($socket, "router_public_ip", 9100);

在我的路由器中我设置了要转发的端口: 在此处输入图片描述

当我尝试连接时,PHP 抛出错误socket_connect(): unable to connect [111]: Connection refused,并且路由器日志显示连接失败。

我注意到路由器日志中的起始端口是随机的,并尝试将我的端口转发配置更改为: 在此处输入图片描述

这给了我相同的结果,我的路由器没有给我太多信息(至于为什么连接失败,是否被阻止了?)。以下是日志中显示的全部内容:

在此处输入图片描述

编辑: 打印机配置实用程序菜单似乎没有提及有关防火墙或远程连接的任何内容。 在此处输入图片描述

答案1

然后我对打印机网络配置中的 0.0.0.0 网关感到疑惑。

这意味着您的打印机可以直接连接到任何 IP 地址。在正常情况下,系统只能直接与其子网中的其他系统通信(参见掩码)。为了获得更广泛的覆盖范围,它需要通过网关。

相关内容