/*
* Copyright (C) 2008-2015 by Holger Arndt
*
* This file is part of the Universal Java Matrix Package (UJMP).
* See the NOTICE file distributed with this work for additional
* information regarding copyright ownership and licensing.
*
* UJMP is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* UJMP is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with UJMP; if not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301 USA
*/
package org.ujmp.core.util.matrices;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.TreeMap;
import org.ujmp.core.Matrix;
import org.ujmp.core.mapmatrix.DefaultMapMatrix;
import org.ujmp.core.util.NetworkUtil;
import org.ujmp.core.util.concurrent.BackgroundTask;
public class RemoteHostMatrix extends DefaultMapMatrix<String, Matrix> {
private static final long serialVersionUID = 7209155858904976010L;
public RemoteHostMatrix(final String address) {
super(new TreeMap<String, Matrix>());
setLabel(NetworkUtil.getHostName(address));
new BackgroundTask() {
@Override
public Object run() {
return searchServices();
}
private Object searchServices() {
boolean portAvailable = false;
final int delay = 3000;
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 10413), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
// map.put("JDMP", new RemoteMatrix("http://" +
// getObject(0) + ":10413/"));
put("JDMP", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 80), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("HTTP", new HttpMatrix("http://" + getObject(0)));
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 443), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("HTTPS", new HttpMatrix("https://" + getObject(0)));
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 3306), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
// map.put("MySQL", new
// MySQLDatabaseMapMatrix(getAddress(), 3306, "root",
// ""));
put("MySQL", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 22), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("SSH", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 20), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("FTP", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 23), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("Telnet", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 445), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("SMB", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 1433), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("MSSQL", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 5432), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("PostgreSQL", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 11211), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("memcached", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 27017), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("mongoDB", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 25), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("SMTP", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 143), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("IMAP", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 993), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("IMAPS", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 2049), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("NFS", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 8080), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("Tomcat", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 50010), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("HDFS DataNode", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 50070), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("HDFS NameNode", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 50090), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("HDFS Secondary NameNode", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 8021), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("Hadoop JobTracker", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 50030), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("Hadoop JobTracker", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 50060), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("Hadoop TaskTracker", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 9200), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("Elasticsearch HTTP", null);
fireValueChanged();
}
} catch (Exception e) {
}
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, 9300), delay);
portAvailable = socket.isConnected();
socket.close();
if (portAvailable) {
put("Elasticsearch Transport", null);
fireValueChanged();
}
} catch (Exception e) {
}
return null;
}
};
}
}