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