package com.pi4j.system;
/*
* #%L
* **********************************************************************
* ORGANIZATION : Pi4J
* PROJECT : Pi4J :: Java Library (Core)
* FILENAME : NetworkInfo.java
*
* This file is part of the Pi4J project. More information about
* this project can be found here: http://www.pi4j.com/
* **********************************************************************
* %%
* Copyright (C) 2012 - 2013 Pi4J
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.pi4j.util.ExecUtil;
public class NetworkInfo {
// private constructor
private NetworkInfo() {
// forbid object construction
}
public static String getHostname() throws IOException, InterruptedException {
return ExecUtil.execute("hostname --short")[0];
}
public static String getFQDN() throws IOException, InterruptedException {
return ExecUtil.execute("hostname --fqdn")[0];
}
public static String[] getIPAddresses() throws IOException, InterruptedException {
return ExecUtil.execute("hostname --all-ip-addresses", " ");
}
public static String getIPAddress() throws IOException, InterruptedException {
return ExecUtil.execute("hostname --ip-address")[0];
}
public static String[] getFQDNs() throws IOException, InterruptedException {
return ExecUtil.execute("hostname --all-fqdns", " ");
}
public static String[] getNameservers() throws IOException, InterruptedException {
String[] nameservers = ExecUtil.execute("cat /etc/resolv.conf");
List<String> result = new ArrayList<String>();
for (String nameserver : nameservers) {
if (nameserver.startsWith("nameserver")) {
result.add(nameserver.substring(11).trim());
}
}
return result.toArray(new String[0]);
}
// public static Map<String,NetworkInterface> getNetworkInterfaces() throws IOException, InterruptedException {
//
// Map<String,NetworkInterface> interfaces = new HashMap<String, NetworkInterface>();
//
// List<String> result = new ArrayList<String>();
// Process p = Runtime.getRuntime().exec("ifconfig");
// p.waitFor();
// BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
// String line = reader.readLine();
// String key = null;
// while (line != null) {
//
// if (!line.isEmpty()) {
//
// // if the line does start with string data and not spaces, then
// // it is a new interface record
// if (!line.startsWith(" ")) {
//
// String[] parts = line.split(" ", 2);
// key = parts[0].trim();
// //interfaces.put(key, value);
// }
//
// if (key != null && !key.isEmpty()) {
//
// String[] properties = line.split(" ");
// for (String property : properties) {
// String[] propparts = property.split(":",2);
//
// }
// }
//
//// if (split != null || split.isEmpty()) {
//// result.add(line.trim());
//// System.out.println(line.trim());
//// } else {
//// String[] parts = line.trim().split(split);
//// for (String part : parts) {
//// if (part != null && !part.isEmpty()) {
//// result.add(part.trim());
//// System.out.println(part.trim());
//// }
//// }
//// }
// }
// line = reader.readLine();
// }
//
//
//
// //throw new RuntimeException("Invalid command: " + command);
//
// return interfaces;
// }
}