curl の送信元ポート範囲を指定する必要があります。TCP で送信元ポートの範囲を選択できるオプションがありません。
出来ますか ?
ありがとう
を使った方が良いと思いますfsockopen
。ファイアウォールによってブロックされたときに、これがうまくいったことが何度もありました。参照: http://php.net/fsockopen
$ports = array(80, 81);
foreach ($ports as $port) {
$fp =@ fsockopen("tcp://127.0.0.1", $port);
// or fsockopen("www.google.com", $port);
if ($fp) {
print "Port $port is open.\n";
fclose($fp);
} else {
print "Port $port is not open.\n";
}
}
ちなみに、CURL用はありますが、 ;CURLOPT_PORT
では動作しません。tcp://127.0.0.1
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1");
curl_setopt($ch, CURLOPT_PORT, 80);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$re = curl_exec($ch);
// echo curl_errno($ch);
curl_close($ch);
print $re;