mirror of https://github.com/GOSTSec/sgminer
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
2.9 KiB
156 lines
2.9 KiB
13 years ago
|
/*
|
||
|
*
|
||
|
* Usage: java API command ip port
|
||
|
*
|
||
|
* If any are missing or blank they use the defaults:
|
||
|
*
|
||
|
* command = 'summary'
|
||
|
* ip = '127.0.0.1'
|
||
|
* port = '4028'
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
import java.net.*;
|
||
|
import java.io.*;
|
||
|
|
||
|
class API
|
||
|
{
|
||
|
static private final int MAXRECEIVESIZE = 65535;
|
||
|
|
||
|
static private Socket socket = null;
|
||
|
|
||
|
private void closeAll() throws Exception
|
||
|
{
|
||
|
if (socket != null)
|
||
|
{
|
||
|
socket.close();
|
||
|
socket = null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void display(String result) throws Exception
|
||
|
{
|
||
|
String value;
|
||
|
String name;
|
||
|
String[] sections = result.split("\\|", 0);
|
||
|
|
||
|
for (int i = 0; i < sections.length; i++)
|
||
|
{
|
||
|
if (sections[i].trim().length() > 0)
|
||
|
{
|
||
|
String[] data = sections[i].split(",", 0);
|
||
|
|
||
|
for (int j = 0; j < data.length; j++)
|
||
|
{
|
||
|
String[] nameval = data[j].split("=", 2);
|
||
|
|
||
|
if (j == 0)
|
||
|
{
|
||
|
if (nameval.length > 1
|
||
|
&& Character.isDigit(nameval[1].charAt(0)))
|
||
|
name = nameval[0] + nameval[1];
|
||
|
else
|
||
|
name = nameval[0];
|
||
|
|
||
|
System.out.println("[" + name + "] =>");
|
||
|
System.out.println("(");
|
||
|
}
|
||
|
|
||
|
if (nameval.length > 1)
|
||
|
{
|
||
|
name = nameval[0];
|
||
|
value = nameval[1];
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
name = "" + j;
|
||
|
value = nameval[0];
|
||
|
}
|
||
|
|
||
|
System.out.println(" ["+name+"] => "+value);
|
||
|
}
|
||
|
System.out.println(")");
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void process(String cmd, InetAddress ip, int port) throws Exception
|
||
|
{
|
||
|
char buf[] = new char[MAXRECEIVESIZE];
|
||
|
int len = 0;
|
||
|
|
||
|
System.out.println("Attempting to send '"+cmd+"' to "+ip.getHostAddress()+":"+port);
|
||
|
|
||
|
try
|
||
|
{
|
||
|
socket = new Socket(ip, port);
|
||
|
PrintStream ps = new PrintStream(socket.getOutputStream());
|
||
|
ps.print(cmd.toLowerCase().toCharArray());
|
||
|
ps.flush();
|
||
|
|
||
|
InputStreamReader isr = new InputStreamReader(socket.getInputStream());
|
||
|
len = isr.read(buf, 0, MAXRECEIVESIZE);
|
||
|
|
||
|
closeAll();
|
||
|
}
|
||
|
catch (IOException ioe)
|
||
|
{
|
||
|
System.err.println(ioe.toString());
|
||
|
closeAll();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
String result = new String(buf, 0, len);
|
||
|
|
||
|
System.out.println("Answer='"+result+"'");
|
||
|
|
||
|
display(result);
|
||
|
}
|
||
|
|
||
|
public API(String command, String _ip, String _port) throws Exception
|
||
|
{
|
||
|
InetAddress ip;
|
||
|
int port;
|
||
|
|
||
|
try
|
||
|
{
|
||
|
ip = InetAddress.getByName(_ip);
|
||
|
}
|
||
|
catch (UnknownHostException uhe)
|
||
|
{
|
||
|
System.err.println("Unknown host " + _ip + ": " + uhe);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
try
|
||
|
{
|
||
|
port = Integer.parseInt(_port);
|
||
|
}
|
||
|
catch (NumberFormatException nfe)
|
||
|
{
|
||
|
System.err.println("Invalid port " + _port + ": " + nfe);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
process(command, ip, port);
|
||
|
}
|
||
|
|
||
|
public static void main(String[] params) throws Exception
|
||
|
{
|
||
|
String command = "summary";
|
||
|
String ip = "127.0.0.1";
|
||
|
String port = "4028";
|
||
|
|
||
|
if (params.length > 0 && params[0].trim().length() > 0)
|
||
|
command = params[0].trim();
|
||
|
|
||
|
if (params.length > 1 && params[1].trim().length() > 0)
|
||
|
ip = params[1].trim();
|
||
|
|
||
|
if (params.length > 2 && params[2].trim().length() > 0)
|
||
|
port = params[2].trim();
|
||
|
|
||
|
new API(command, ip, port);
|
||
|
}
|
||
|
}
|