2010-02-09 11 views
13

पूर्ण प्रकटीकरण अग्रेषित: वहाँ एक समान प्रश्न here है।टेस्ट यदि पोर्ट खुला और का उपयोग कर PHP

वहाँ किसी भी तरह से यदि किसी विशेष बंदरगाह ठीक से PHP का उपयोग खुला और अग्रेषित है मैं परीक्षण कर सकते हैं है? विशेष रूप से, किसी दिए गए उपयोगकर्ता से किसी दिए गए उपयोगकर्ता से कनेक्ट करने के लिए मैं सॉकेट का उपयोग करने के बारे में कैसे जा सकता हूं?

एक इस का उदाहरण WhatsMyIP.org/ports की 'कस्टम पोर्ट टेस्ट' अनुभाग में है।

उत्तर

63

मुझे यकीन है कि आप द्वारा किया जा रहा "ठीक से अग्रेषित" क्या मतलब है नहीं कर रहा हूँ, लेकिन उम्मीद है कि इस उदाहरण चाल करना होगा:

$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"; 
    } 
} 

आउटपुट:

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 बंदरगाह संख्याओं की एक पूरी सूची के लिए।

+0

धन्यवाद - यह बहुत ही मुझे क्या करना उम्मीद कर रहा था के समान है। जब मैंने कहा कि 'ठीक से अग्रेषित किया गया' तो मेरा मतलब था कि उपयोगकर्ता के पास बंदरगाह के लिए अपने राउटर पर बंदरगाह अग्रेषण सक्षम है। मेरे पास एक मल्टीप्लेयर गेम है जिसमें सर्वर के रूप में कार्य करने का विकल्प है। इसलिए, पोर्ट अग्रेषण की आवश्यकता है और हम एक साधारण सुविधा चाहते हैं जो यह सत्यापित करने का प्रयास करती है कि बंदरगाह वास्तव में अग्रेषित किया गया है। –

+2

क्या मैं यह सोचने में सही हूं कि यह आपके आउटबाउंड और रिसीवर को अंदरूनी परीक्षण करता है, इसलिए यदि आप अपने आउटबाउंड का परीक्षण करने के लिए कोई फ़ंक्शन लिखना चाहते हैं, तो आपको सभी इनबाउंड बंदरगाहों के साथ एक सार्वजनिक सर्वर ढूंढना होगा? – Programster

+0

भयानक समाधान। (Y) – Bhavin

संबंधित मुद्दे