console.py: support connecting to any host, not just 127.0.0.1

This commit is contained in:
moneromooo-monero 2019-03-23 16:48:28 +00:00
parent 064ab12340
commit 108f4375b8
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3
1 changed files with 23 additions and 5 deletions

View File

@ -4,27 +4,45 @@ from __future__ import print_function
import sys import sys
import subprocess import subprocess
import socket import socket
import urlparse
from framework import rpc from framework import rpc
from framework import wallet from framework import wallet
from framework import daemon from framework import daemon
USAGE = 'usage: python -i console.py <port>' scheme='http'
host='127.0.0.1'
port=None
USAGE = 'usage: python -i console.py [[scheme]<host>:]<port>'
try: try:
port = int(sys.argv[1]) try:
except: port = int(sys.argv[1])
except:
t = urlparse.urlparse(sys.argv[1], allow_fragments = False)
scheme = t.scheme or scheme
host = t.hostname or host
port = t.port or port
if scheme != 'http' and scheme != 'https':
print(USAGE)
sys.exit(1)
if port <= 0 or port > 65535:
print(USAGE)
sys.exit(1)
except Exception, e:
print('Error: ' + str(e))
print(USAGE) print(USAGE)
sys.exit(1) sys.exit(1)
# check for open port # check for open port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(1) s.settimeout(1)
if s.connect_ex(('127.0.0.1', port)) != 0: if s.connect_ex((host, port)) != 0:
print('No wallet or daemon RPC on port ' + str(port)) print('No wallet or daemon RPC on port ' + str(port))
sys.exit(1) sys.exit(1)
s.close() s.close()
# both wallet and daemon have a get_version JSON RPC # both wallet and daemon have a get_version JSON RPC
rpc = rpc.JSONRPC('{protocol}://{host}:{port}'.format(protocol='http', host='127.0.0.1', port=port)) rpc = rpc.JSONRPC('{protocol}://{host}:{port}'.format(protocol=scheme, host=host, port=port))
get_version = { get_version = {
'method': 'get_version', 'method': 'get_version',
'jsonrpc': '2.0', 'jsonrpc': '2.0',