访问原始Apache Web服务器请求

时间:2011-04-26 19:14:13

标签: php apache sockets

我打算设计一个web gps跟踪应用程序。 gps在端口7070上使用TCP(无HTTP头)传输数据(我打算将其更改为80)。我知道GPS跟踪器和客户端之间的通信协议,但我卡住了,因为我无法拦截网络服务器上的数据包。 由于应用程序处于开发阶段并且我是一个业余爱好者,我无法负担专用的Web主机服务器,因此可以访问用于套接字编程的php-cli接口。

有什么方法可以避免对php-cli的需要并拦截原始tcp数据包。

由于

1 个答案:

答案 0 :(得分:3)

只需在端口7070上监听专用的PHP脚本,即可使用fsockopen()完成此操作。当Apache已经在端口80上监听时,您不希望将GPS直接发送到端口80.Apache将看到一组非HTTP数据进入并完全忽略该请求。

$handle = fsockopen('localhost', 7070, $errno, $errstr);
if (!$handle) {
   die("Couldn't bind to socket (err $errno): $errstr");
}

while($data = fgets($handle)) {
    ... process gps data ...
}

将是最简单的基本形式。