Я пытаюсь подключиться к почтовому серверу gmail из установки phplist, и он терпит неудачу, но я не уверен, что мой веб-хостинг открыл порт 995 или нет. Говорят, они открыли его, но я сомневаюсь. Есть ли способ проверить это с помощью php-скрипта? Они запускают php 5.2.0 на сервере Windows, хотя я не уверен, что такое ОС. phpinfo () говорит: «Windows NT DEDI514 5.2 build 3790»
Вы можете поместить код в php-скрипт, чтобы открыть соединение с определенным именем хоста (или IP-адресом) и портом. Если вы знаете ожидаемый ответ, вы должны узнать, получаете ли вы соединение. Если вы получаете что-то вроде «Connection reject», то либо вы блокируетесь, либо хост-получатель не принимает подключения к этому порту.
В этом примере используется 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 .
Я думаю, вам нужно будет ping или traceroute на машине, которая ответит на этом порту.
Эта статья должна иметь гораздо больше, чем вы хотите знать, но есть пример сценария внизу, который вы можете изменить для тестирования.
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?lngWId=8&txtCodeId=1786
Здесь есть и другие сценарии: http://www.theworldsend.net/
Я не могу ручаться за кого-либо из них лично, но они выглядят так, как вам нужно.
И, конечно, если вы можете использовать ssh или telnet на своем сервере, вы можете сделать все это намного проще с помощью команд ping и traceroute.
Может быть, безопасный режим активен? Это предотвращает вызовы на других серверах.
Изменить: на все функции файловой системы и потока влияют настройки безопасного режима!
Параметр open_basedir
влияет на fopen ()!