IPFS – Solving Connection Issues to External Nodes on Infura.io Using Curl

infuraipfsweb3js

im trying to to store data to ipfs via php , i use curl to communicate with api , it works find on my local node , but i want to use external node from infura.io

but for some reason ipfs.infura.io is refusing my connection via php
even a simple command like … i've tried it on my localhost as well as couple of servers

here is a simple endpoint which you can open in the browser and get the output

https://ipfs.infura.io:5001/api/v0/pin/add?arg=QmeGAVddnBSnKc1DLE7DLV9uuTqo5F7QbaveTjr45JUdQn

but when i try to open it via php i get

Failed to connect to ipfs.infura. io port 5001: Connection refused

or when using another method like file_get_contents

file_get_contents(ipfs.infura.io:5001/api/v0/pin/add?arg=QmeGAVddnBSnKc1DLE7DLV9uuTqo5F7QbaveTjr45JUdQn): failed to open stream: Connection refused

i've tried it on local host and multiple server , i get the same result even via ssh command line
enter image description here

enter image description here

any idea why is this happening ?

here is a simplified version n of my code

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL,"https://ipfs.infura.io:5001/api/v0/pin/add?arg=QmeGAVddnBSnKc1DLE7DLV9uuTqo5F7QbaveTjr45JUdQn");
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_FAILONERROR, true);
    $res = curl_exec($curl);
    if (curl_errno($curl)) {
        $error_msg = curl_error($curl);
        echo ('error ...');
        echo ($error_msg);
       exit();
    }

    curl_close($curl);
    echo($res);

Best Answer

Your code works fine for me. I also can get correct response with curl. I think you should search the reason of your problem in your network infrastructure. Here is https://stackoverflow.com/a/2333446/7581809 good discussion why this problem can happen. You said you tryed different servers. Are these servers in same network ? May be there is a firewall in this network, which rejects your packets to infura. Try another server from another network.

Related Topic