Estoy tratando de hacer una llamada json a un servidor VPS que aloja mi billetera y falla con el siguiente mensaje de error:
Warning: fopen(http://user:pass@ip:port): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden
in C:\Users\Owner\Desktop\USBWebServer\root\php\jsonRPCClient.php on line 132
Fatal error: Uncaught exception 'Exception' with message 'Unable to connect to http://user:pass@ip:port' in C:\Users\Owner\Desktop\USBWebServer\root\php\jsonRPCClient.php:140
Stack trace:
#0 C:\Users\Owner\Desktop\USBWebServer\root\php\testrpc.php(15): jsonRPCClient- >__call('getinfo', Array)
#1 C:\Users\Owner\Desktop\USBWebServer\root\php\testrpc.php(15): jsonRPCClient- >getinfo()
#2 C:\Users\Owner\Desktop\USBWebServer\root\index.php(154): include('C:\Users\Owner\...')
#3 {main}
thrown in C:\Users\Owner\Desktop\USBWebServer\root\php\jsonRPCClient.php on line 140
Obtuve mi archivo JsonRPCClinet.php de aquí http://jsonrpcphp.org/code.php?file=jsonRPCClient
mi archivo bitcoin.conf es el siguiente:
server=1
daemon=1
listen=1
rpcuser=user
rpcpassword=pass
rpctimeout=16
rpcallowip=0.0.0.0
rpcport=8332
Soy consciente de que 0.0.0.0 es peligroso, lo cambiaré una vez que pueda hacer que todo funcione
estoy llamando a json-rpc usando este código php
<?php
require_once 'jsonRPCClient.php';
/* Configuration variables for the JSON-RPC server */
$rpc_host = 'ip';
$rpc_port = '8332';
$rpc_user = 'user';
$rpc_pass = 'pass';
$btc = new jsonRPCClient('http://' . $rpc_user . ':' . $rpc_pass . '@' . $rpc_host . ':' . $rpc_port);
echo "<pre>\n";
print_r($btc->getinfo()); echo "\n";
echo "Received: ".$btc->getreceivedbylabel("BEkpbpYLpwacchSQFRCL7ZSWw3VwB8k7WN")."\n";
echo "</pre>";
?>
además he abierto el puerto 8332 en mi VPS
¿alguien puede ver alguna razón por la que este error está ocurriendo, agradecería mucho la ayuda
Acabo de leer el código que maneja rpcallowip y puedo decirte que rpcallowip=0.0.0.0
no funcionará.
Si desea permitir desde todas las direcciones, debe usar
rpcallowip=0.0.0.0/0
(Extrañamente, no puedo encontrar ningún código que maneje comodines. Voy a abrir un problema en github al respecto. Parece que la documentación o el código son incorrectos).
Editar: resulta que se eliminó la compatibilidad con comodines.
$btc->debug = true
en su programa; a ver si aparece algo esclarecedor.new jsonRPCClient("http://...", true)
usuario11221
rpcallowip=*
en lugar de0.0.0.0
.Nick ODell
Nick ODell
usuario11221
bitcoind
, podría ser un proxy o incluso un firewall que devuelve esto403
si se filtran los paquetes.