Bagaimana untuk Ping Port Pelayan Jauh dalam PHP?

Mary-Kate Olsen
Lepaskan: 2024-10-18 12:09:31
asal
598 orang telah melayarinya

How to Ping a Remote Server Port in PHP?

Ping Port Pelayan dengan PHP

Mendapatkan status kesambungan pelayan jauh ialah aspek penting dalam pengurusan dan ujian rangkaian. PHP menyediakan cara mudah untuk ping alamat IP dan port menggunakan fungsi fsockopen(). Walau bagaimanapun, skrip sedia ada yang disebut dalam soalan adalah terhad untuk menguji tapak web, bukan gabungan IP:port tertentu.

Untuk menangani keperluan ini, kami boleh memanfaatkan mekanisme penubuhan sambungan TCP. Dengan cuba mewujudkan sambungan TCP dengan alamat IP dan port yang diberikan, kami boleh membuat kesimpulan tentang ketersediaan pelayan. Kod di bawah merangkumi fungsi ini:

<code class="php"><?php

function ping($host, $port, $timeout) 
{ 
  $tB = microtime(true); 
  $fP = fsockopen($host, $port, $errno, $errstr, $timeout); 
  if (!$fP) { return "down"; } 
  $tA = microtime(true); 
  return round((($tA - $tB) * 1000), 0)." ms"; 
}

// Usage example: ping a server at IP address 127.0.0.1, port 80
echo ping("127.0.0.1", 80, 10);

?></code>
Salin selepas log masuk

Coretan kod ini menentukan sama ada pelayan menerima sambungan TCP pada port yang ditentukan. Jika sambungan diwujudkan dalam tamat masa yang diberikan, fungsi mengembalikan masa tindak balas ping dalam milisaat; jika tidak, ia mengembalikan "bawah" untuk menunjukkan bahawa pelayan tidak dapat dicapai.

Untuk memperhalusi lagi respons, anda boleh menggunakan fungsi pingDomain() yang disediakan dalam jawapan yang diterima:

<code class="php"><?php

function pingDomain($domain){
    $starttime = microtime(true);
    $file      = fsockopen ($domain, 80, $errno, $errstr, 10);
    $stoptime  = microtime(true);
    $status    = 0;

    if (!$file) $status = -1;  // Site is down
    else {
        fclose($file);
        $status = ($stoptime - $starttime) * 1000;
        $status = floor($status);
    }
    return $status;
}

// Usage example: ping a server at domain name example.com
echo pingDomain("example.com");

?></code>
Salin selepas log masuk

Dengan memanfaatkan fungsi soket PHP, kami boleh ping kedua-dua alamat IP dan nama domain dengan berkesan untuk menguji ketersambungan dan mengenal pasti hos yang tidak bertindak balas.

Atas ialah kandungan terperinci Bagaimana untuk Ping Port Pelayan Jauh dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!