You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP通过SOAP请求下载RFID考勤机日志连接失败求助

解决fsockopen无法连接Solution品牌考勤机的方法

网络连通性排查

  • 在服务器上执行 ping 192.168.x.x,确认能正常ping通设备IP。如果ping不通:
    • 检查设备和服务器是否处于同一局域网;若不在同一网域,确认是否已做端口映射
    • 核实设备IP是否被修改,或设备本身是否处于离线状态
  • 用 telnet 192.168.x.x 4370 测试端口开放情况。若telnet无法连接,大概率是设备4370端口未开启,或客户侧防火墙/路由器拦截了该端口的入站请求

设备配置验证

  • 确认客户的Solution C1型号考勤机已开启SOAP服务,且端口设置为4370。不同型号设备的默认配置可能不同,X606-s的生效配置不代表C1通用
  • 检查设备网络权限设置:是否允许外部IP访问,是否设置了IP白名单?若有白名单,需将服务器IP加入允许列表

PHP环境与代码调整

  • 检查服务器PHP配置中 allow_url_fopen 是否开启,可通过 phpinfo() 查看,fsockopen依赖该配置项
  • 尝试替换fsockopen为stream_socket_client,部分环境下该函数兼容性更好,示例代码:
$socket = stream_socket_client("tcp://192.168.x.x:4370", $errno, $errstr, 30);
if (!$socket) {
    echo "$errstr ($errno)";
} else {
    fwrite($socket, $soapRequest);
    $response = stream_get_contents($socket);
    fclose($socket);
}
  • 核对SOAP请求XML格式是否适配C1型号。不同型号设备对SOAP报文的命名空间、参数格式可能存在细微差异,需对照设备官方文档调整报文内容

防火墙与安全策略排查

  • 检查服务器侧防火墙(如iptables、firewalld)是否允许出站访问4370端口
  • 确认客户侧网络是否有安全设备(如入侵检测系统)拦截了SOAP请求,可尝试用Postman等工具模拟请求,排除代码本身问题

内容的提问来源于stack exchange,提问作者akhiratunnisa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 03:32:00