如何在 php 中 ping UDP
How to ping UDP in php
我有一个关于对某些游戏服务器执行 ping 操作以查看它们是否存在的问题,大多数仅使用您的标准 PHP ping 就可以正常工作,但其他服务器来自 steam...而 steam 正在使它更我很难发送一个 ping 来查看它是否还活着,我尝试了 Steam Condenser 但是...不知道如何使用它,因为没有文档。
我的问题
如何 ping UDP 游戏服务器,如 Arma 2、Arma 3 等。这是我尝试过的:
$host = '128.0.0.1';
$port = 1234;
$waitTimeoutInSeconds = 7;
if($fp = fsockopen("udp://".$host,$port,$errCode,$errStr))
{
echo 'Online';
}
else
{
echo 'Offline';
}
问题是无论我使用什么 IP 或端口,我总是得到 "true" 返回,我怎样才能让它工作?
编辑
我也试过了
$host = '128.0.0.1';
$port = 1234;
$waitTimeoutInSeconds = 7;
if($fp = fsockopen("udp://".$host,$port,$errCode,$errStr))
{
$write = fwrite($fp,"x00");
if (!$write)
{
echo 'offline';
}
else
{
echo 'online';
}
}
else
{
echo 'offline';
}
fclose($fp);
但是对于这个我得到错误代码 0,这似乎是套接字初始化的问题?
如何使用 OS 的 ping 实用程序,使用 PHP 执行终端 ping 命令。您可以在这里阅读:http://php.net/manual/en/function.shell-exec.php
我尝试了这个,删除了 "udp://" :
$host = '128.0.0.1';
$port = 1234;
$waitTimeoutInSeconds = 7;
if($fp = fsockopen($host,$port,$errCode,$errStr))
{
echo 'Online';
}
else
{
echo 'Offline';
}
并且有效。这是 return 文本:
Warning: fsockopen(): unable to connect to 128.0.0.1:1234 (A connection attempt failed because the connected party didn't properly respond after a period time, or established connection failed because connected host has failed respond.
警告:fsockopen(): unable to connect to 128.0.0.1:1234 .) 在第 6 行的 C:\xampp\htdocs\test.php 中
离线
我认为您不应该输入 "udp://",因为仅使用端口号就足够了。
我有一个关于对某些游戏服务器执行 ping 操作以查看它们是否存在的问题,大多数仅使用您的标准 PHP ping 就可以正常工作,但其他服务器来自 steam...而 steam 正在使它更我很难发送一个 ping 来查看它是否还活着,我尝试了 Steam Condenser 但是...不知道如何使用它,因为没有文档。
我的问题
如何 ping UDP 游戏服务器,如 Arma 2、Arma 3 等。这是我尝试过的:
$host = '128.0.0.1';
$port = 1234;
$waitTimeoutInSeconds = 7;
if($fp = fsockopen("udp://".$host,$port,$errCode,$errStr))
{
echo 'Online';
}
else
{
echo 'Offline';
}
问题是无论我使用什么 IP 或端口,我总是得到 "true" 返回,我怎样才能让它工作?
编辑 我也试过了
$host = '128.0.0.1';
$port = 1234;
$waitTimeoutInSeconds = 7;
if($fp = fsockopen("udp://".$host,$port,$errCode,$errStr))
{
$write = fwrite($fp,"x00");
if (!$write)
{
echo 'offline';
}
else
{
echo 'online';
}
}
else
{
echo 'offline';
}
fclose($fp);
但是对于这个我得到错误代码 0,这似乎是套接字初始化的问题?
如何使用 OS 的 ping 实用程序,使用 PHP 执行终端 ping 命令。您可以在这里阅读:http://php.net/manual/en/function.shell-exec.php
我尝试了这个,删除了 "udp://" :
$host = '128.0.0.1';
$port = 1234;
$waitTimeoutInSeconds = 7;
if($fp = fsockopen($host,$port,$errCode,$errStr))
{
echo 'Online';
}
else
{
echo 'Offline';
}
并且有效。这是 return 文本:
Warning: fsockopen(): unable to connect to 128.0.0.1:1234 (A connection attempt failed because the connected party didn't properly respond after a period time, or established connection failed because connected host has failed respond.
警告:fsockopen(): unable to connect to 128.0.0.1:1234 .) 在第 6 行的 C:\xampp\htdocs\test.php 中 离线
我认为您不应该输入 "udp://",因为仅使用端口号就足够了。