tags:

views:

137

answers:

2

Hello. I am trying to get information of remote file with curl. Problem is that other web-server is on port 81.

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt ($ch, CURLOPT_PORT , 81);
curl_setopt($ch, CURLOPT_URL, 'http://98.246.25.185/server_status2.php');
$store = curl_exec ($ch);
echo substr($store, 1);
curl_close ($ch);
?>

And as you can see it doesnt work.

+3  A: 

What happens if you specify the port number in the URI ?

What I mean is first remove the CURLOPT_PORT line, and, then, modify the CURLOPT_URL one to add the port number :

curl_setopt($ch, CURLOPT_URL, 'http://98.246.25.185:81/server_status2.php');


Edit after the comment : I just tryied this portion of code :

$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, true);
//curl_setopt ($ch, CURLOPT_PORT , 81);
curl_setopt($ch, CURLOPT_URL, 'http://98.246.25.185:81/server_status2.php');
$store = curl_exec ($ch);
echo substr($store, 1);
curl_close ($ch);

And I get this output :

Online Peak: 59
Online: 17
Distributive server: Online
Agent server: Online

So, the code seems to be OK.

Are you sure there is not a firewall or anything or your network, that prevents you from doing HTTP requests on port 81 to that server ?
Does it work when you type that URI in your browser ?

Pascal MARTIN
it will keep loading for ever
DanSpd
Here. Exact same code as you have: http://athensluna.net/status.php
DanSpd
I confirm it remains "waiting" forever ^^ Which is generally caused by some network connection not being possible : like if there were some firewall on your network, preventing your first server from connecting to that second server (I've seen that kind of situation of few times, where non-standard port where blocked by hosting providers -- maybe it's the case here ? )
Pascal MARTIN
+1  A: 

Your original code works fine for me. Returns:

<b>Online Peak: </b>59        <br /><b>Online: </b> 17<br /><b>Distributive server:</b> <font color=green>Online</font><br /><b>Agent server:</b> <font color=green>Online</font><br />

Perhaps the port is being blocked by your firewall?

P.S. The echo in your code is redundant. The curl_exec prints the result to the output buffer unless you set CURLOPT_RETURNTRANSFER as TRUE.

Atli