Laravel ping IP查看在线或离线状态
Laravel ping IP to check online or offline status
我正在使用 Laravel v.6.11。我想 ping IP:Port 以检查其在线或离线状态。为此,我正在使用 karlmonson/laravel-ping 包。每当我对它执行 ping returns 错误状态时,有时服务器处于开启状态并且它 returns 错误,反之亦然。
我的控制器
<?php
namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Ping;
class PlexServerController extends Controller
{
public function serverStatus(Request $request)
{
$ip = $request->ip;
$port = $request->port;
$health = Ping::check($ip.':'.$port);
if($health == 200){
return $json = json_encode(['status' => '1','health' => $health]);
} else {
return $json = json_encode(['status' => '2','health' => $health]);
}
}
}
现在我希望有人能帮我解决这个问题。我也在使用 laravelcollective/remote 到 运行 SSH 命令。太酷了,它 运行 是所有命令。谁能帮我解决检查 IP 在线或离线的问题,以及 returns 状态码响应。
好吧,经过几天的 google 搜索,我终于找到了另一个解决方案,但忘记了 post 我的回答,因为没有人回应。您可以按照 curl 进行操作,因为它也内置于 Laravel 中,如果您使用基于 Ubuntu/Linux 的方法,速度会很快服务器。下面是我放置虚拟 ip 和 port
$ip = '127.0.0.1';
$port = '22';
$url = $ip . ':' . $port;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
$health = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($health) {
$json = json_encode(['health' => $health, 'status' => '1']);
return $json;
} else {
$json = json_encode(['health' => $health, 'status' => '0']);
return $json;
}
我正在使用 Laravel v.6.11。我想 ping IP:Port 以检查其在线或离线状态。为此,我正在使用 karlmonson/laravel-ping 包。每当我对它执行 ping returns 错误状态时,有时服务器处于开启状态并且它 returns 错误,反之亦然。
我的控制器
<?php
namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Ping;
class PlexServerController extends Controller
{
public function serverStatus(Request $request)
{
$ip = $request->ip;
$port = $request->port;
$health = Ping::check($ip.':'.$port);
if($health == 200){
return $json = json_encode(['status' => '1','health' => $health]);
} else {
return $json = json_encode(['status' => '2','health' => $health]);
}
}
}
现在我希望有人能帮我解决这个问题。我也在使用 laravelcollective/remote 到 运行 SSH 命令。太酷了,它 运行 是所有命令。谁能帮我解决检查 IP 在线或离线的问题,以及 returns 状态码响应。
好吧,经过几天的 google 搜索,我终于找到了另一个解决方案,但忘记了 post 我的回答,因为没有人回应。您可以按照 curl 进行操作,因为它也内置于 Laravel 中,如果您使用基于 Ubuntu/Linux 的方法,速度会很快服务器。下面是我放置虚拟 ip 和 port
$ip = '127.0.0.1';
$port = '22';
$url = $ip . ':' . $port;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
$health = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($health) {
$json = json_encode(['health' => $health, 'status' => '1']);
return $json;
} else {
$json = json_encode(['health' => $health, 'status' => '0']);
return $json;
}