2010-02-09 27 views
13

kullanılarak açıklanıp bildirilmediğini sınayın. Tam Açıklama: Benzer bir soru var here.Bağlantı noktası açık ve PHP

Belirli bir bağlantı noktasının PHP kullanılarak düzgün şekilde iletilip iletilip iletilmediğini test etmenin bir yolu var mı? Özellikle, belirli bir kullanıcı ile belirli bir bağlantı noktasına bağlanmak için bir soket kullanarak nasıl giderim?

Bunun bir örneği, WhatsMyIP.org/ports'un 'Özel Bağlantı Noktası Testi' bölümündedir.

cevap

63

sana "düzgün iletilmesini" olma ile ne demek emin değilim, ama umarım bu örnek hile olacaktır:

$host = 'stackoverflow.com'; 
$ports = array(21, 25, 80, 81, 110, 443, 3306); 

foreach ($ports as $port) 
{ 
    $connection = @fsockopen($host, $port); 

    if (is_resource($connection)) 
    { 
     echo '<h2>' . $host . ':' . $port . ' ' . '(' . getservbyport($port, 'tcp') . ') is open.</h2>' . "\n"; 

     fclose($connection); 
    } 

    else 
    { 
     echo '<h2>' . $host . ':' . $port . ' is not responding.</h2>' . "\n"; 
    } 
} 

Çıktı:

stackoverflow.com:21 is not responding. 
stackoverflow.com:25 is not responding. 
stackoverflow.com:80 (http) is open. 
stackoverflow.com:81 is not responding. 
stackoverflow.com:110 is not responding. 
stackoverflow.com:443 is not responding. 
stackoverflow.com:3306 is not responding. 

http://www.iana.org/assignments/port-numbers Bkz port numaralarının tam listesi için.

+0

Teşekkürler - bu, yapmayı umduğum şeye çok benziyor. 'Doğru şekilde yönlendirildi' dediğimde, kullanıcının kullanmak istediğim bağlantı noktası için yönlendiricisinde bağlantı noktası etkinleştirilmiş olduğunu kastediyorum. Sunucu olarak hareket etme seçeneği olan çok oyunculu bir oyunum var. Bu nedenle, port yönlendirme gereklidir ve limanın aslında iletildiğini doğrulamaya çalışan basit bir özelliğe sahip olmak isteriz. –

+2

Bu sizin outbound ve alıcılar gelen test olduğunu düşünürken, ben sadece sizin outbound test etmek için bir işlev yazmak istiyorsanız, tüm gelen portları açık olan bir kamu sunucusu bulmak gerekir düşünerek doğru mu? – Programster

+0

müthiş bir çözüm. (y) – Bhavin

İlgili konular