Если вы хотите выяснить, будет ли данный хост принимать TCP-соединения через порт 80, вы можете сделать это:
$host = '193.33.186.70';
$port = 80;
$waitTimeoutInSeconds = 1;
if ($fp = fsockopen($host,$port,$errCode,$errStr,$waitTimeoutInSeconds)) {
// It worked
} else {
// It didn't work
}
fclose($fp);
Для чего-либо, кроме TCP, это будет сложнее (хотятак как вы указываете 80, я думаю, вы ищете активный HTTP-сервер, так что TCP это то, что вам нужно).TCP секвенируется и подтверждается, поэтому вы неявно получите возвращенный пакет, когда соединение будет успешно установлено.Большинство других транспортных протоколов (обычно UDP, но также и другие) не ведут себя таким образом, и дейтаграммы не будут подтверждены, пока наложенный протокол прикладного уровня не реализует его.
Тот факт, что вы задаете этот вопрос вэтот способ говорит мне, что у вас есть фундаментальный пробел в ваших знаниях по протоколам Transport Layer .Вы должны прочитать о ICMP и TCP , а также Модель OSI .