2013-02-19 4 views
0

Мне нужно указать диапазон портов источника для curl. Я не вижу ни одного варианта, который позволил бы мне выбрать диапазон для исходного порта в TCP.Укажите диапазон портов источника с помощью curl, используя PHP

Возможно ли это?

Благодаря

+0

Это не имеет смысла. Почему вы хотите подключиться к ряду портов? – slugonamission

+0

Существует брандмауэр, который блокирует движение локонов, если исходный порт ниже 20000 ... У вас нет времени ждать сетевых парней;) – hotips

+0

Но что вы имеете в виду, подключившись к ряду портов? Соединение TCP подключается только к одному порту ... – slugonamission

ответ

1

Я думаю, что было бы лучше, используя fsockopen. Я придумал много раз, это сработало для меня, когда они были заблокированы брандмауэрами. См: http://php.net/fsockopen

$ports = array(80, 81); 
foreach ($ports as $port) { 
    $fp [email protected] 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"; 
    } 
} 

Кстати, есть CURLOPT_PORT для CURL, но не работает с 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; 
+0

CURLOPT_PORT обычно для удаленного порта: CURLOPT_PORT \t Альтернативный номер порта для подключения. – hotips