मुझे यकीन है कि आप द्वारा किया जा रहा "ठीक से अग्रेषित" क्या मतलब है नहीं कर रहा हूँ, लेकिन उम्मीद है कि इस उदाहरण चाल करना होगा:
$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 बंदरगाह संख्याओं की एक पूरी सूची के लिए।
स्रोत
2010-02-09 04:30:38
धन्यवाद - यह बहुत ही मुझे क्या करना उम्मीद कर रहा था के समान है। जब मैंने कहा कि 'ठीक से अग्रेषित किया गया' तो मेरा मतलब था कि उपयोगकर्ता के पास बंदरगाह के लिए अपने राउटर पर बंदरगाह अग्रेषण सक्षम है। मेरे पास एक मल्टीप्लेयर गेम है जिसमें सर्वर के रूप में कार्य करने का विकल्प है। इसलिए, पोर्ट अग्रेषण की आवश्यकता है और हम एक साधारण सुविधा चाहते हैं जो यह सत्यापित करने का प्रयास करती है कि बंदरगाह वास्तव में अग्रेषित किया गया है। –
क्या मैं यह सोचने में सही हूं कि यह आपके आउटबाउंड और रिसीवर को अंदरूनी परीक्षण करता है, इसलिए यदि आप अपने आउटबाउंड का परीक्षण करने के लिए कोई फ़ंक्शन लिखना चाहते हैं, तो आपको सभी इनबाउंड बंदरगाहों के साथ एक सार्वजनिक सर्वर ढूंढना होगा? – Programster
भयानक समाधान। (Y) – Bhavin