端口检查从PHP

时间:2009-11-18 19:49:05

标签: php phplist

我正在尝试从phplist安装连接到gmail pop服务器但它失败了,但我不确定我的webhost是否打开了端口995。他们说他们打开了它,但我有疑问。有没有办法我可以从PHP脚本检查它?他们在Windows服务器上运行php 5.2.0,虽然我不确定操作系统是什么。 phpinfo()说“Windows NT DEDI514 5.2 build 3790”

3 个答案:

答案 0 :(得分:2)

您可以将代码放入php脚本中,以打开与特定主机名(或IP地址)和端口的连接。 如果您知道预期的响应,您应该能够判断您是否正在建立连接。如果您收到类似“拒绝连接”的内容,则表示您被阻止,或者目标主机未接受该端口上的连接。

此示例使用IP地址192.0.2.0和端口995.将这些替换为您要测试的任何内容。

<?php
    echo "\nOpening connection\n\n";

    $fp = fsockopen("192.0.2.0", 995, $errno, $errstr);
    if (!$fp) {
        echo "ERROR: $errno - $errstr\n";
    } else {
        echo fread($fp, 1024);
        fclose($fp);
    }
?>

您也可以使用

将数据发送到服务器
fwrite($fp, "blah blah blah\r\n");

有关fsockopen here的更多信息。

答案 1 :(得分:0)

我认为您需要ping或traceroute到将在该端口上响应的计算机。

这篇文章应该比您想知道的要多得多,但是底部有一个示例脚本可以修改以进行测试。

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?lngWId=8&txtCodeId=1786

这里还有一些其他脚本: http://www.theworldsend.net/

我不能亲自担保这些,但它们看起来就像你需要的那样。

当然,如果您可以ssh或telnet到您的服务器,您可以使用ping和traceroute命令更轻松地完成所有这些。

答案 2 :(得分:-1)

也许safe mode有效?这可以防止在其他服务器上调用服务。

编辑: 所有filesystem and stream functions都受到安全模式设置的影响!

open_basedir设置会影响fopen()!