2015-10-07 94 views
-1

我没有卷曲可用于这个旧系统(PHP4),因此无法使用,更新或添加。它不是一台生产机器,只用于内部使用。通过PHP发送获取请求 - 无卷曲

在我的浏览器,我可以输入以下命令:

http://192.168.0.1/device?action=COMMAND

,并在192.168.0.1设备将动作命令传递给它。 这很好,有用。对此设备的访问仅限于一组特定的IP地址。

我希望能够从PHP脚本中调用该URL。我的PHP服务器在批准的列表中,所以这不成问题。

我试过file_get_contents和fread,但都没有工作。

任何任何想法,我可以尝试吗?

感谢

回答

1

您可以使用此去:

http_get('http://192.168.0.1/device', $ArrayOfParameters); 

然而,你可能需要看看sockets或者你可以看看Pecl_Http

Pecl_Http

Sockets

您不应该使用PHP 4。它已停产,因此不会收到任何安全补丁。 - PHP 4 Discountinued

+0

感谢您的回复。这个盒子没有http_get支持,所以我又被卡住了。 – JeffVader

+0

@JeffVader - 你不应该使用PHP 4.我的回答说,它已经停止 –

0

这应该工作:

function GetRequest($URL){ 

    $get = @file_get_contents($URL); 

    if($get === FALSE) 
     return 0; 

    return $get; 

} 

使用:

$result = GetRequest("http://localhost/test.php?foo=bar");

还检查什么IP如果你的IP限制你的服务器上运行。

+0

谢谢 - 我已经做到了,并echo'd $结果返回0 没有错误显示,但似乎没有发生。 如果我在我的浏览器中使用与GetRequest中使用的相同的URL,它将起作用。 我需要做的就是发送一个GET请求到IP地址,我需要使用用户: http://192.168.0.1/device?action=COMMAND 上192.168.0.1设备应该再行动我会看到在日志中的命令。 – JeffVader

+0

该文件没有被找到,你有没有尝试只是做'$ result = GetRequest(“http://192.168.0.1/”);'如果你'print_r($ result);'之后得到0那么它的原因是你的服务器在ACL中被192.168.0.1 –

+0

拒绝。我删除了所有其他条目,现在它从我的浏览器中失败,所以我知道该设置已更新。 我只添加了该IP地址,我仍然得到0 是不是因为我使用的是: http://192.168.0.1/device?action=COMMAND 和Not: HTTP:/ /192.168.0.1/device.php?action=COMMAND – JeffVader