/* The Browser Client Information Class by Jim Mach */ import java.net.*; import ErrorHandler; public class ClientInfo { String client_name = null; String client_address = null; String client_name2 = null; String client_address2 = null; String operating_system = null; String system = null; String browser = null; String java_version = null; String java_vendor = null; String user_name = null; String user_dir = null; String user_javadir = null; String file_system = null; String tmp_string; ErrorHandler error = new ErrorHandler(); public void GetInfo(boolean conn_flag) { int i = 0; byte[] ip_address = new byte[4]; int[] addr = new int[4]; String browser_name; InetAddress local_client = null; browser_name = System.getProperty("browser"); if (browser_name.indexOf("ActiveX") == -1) { browser = System.getProperty("browser") + " " + System.getProperty("browser.version"); } else { browser = System.getProperty("browser"); } if (conn_flag == true) { try { client_name = local_client.getLocalHost().getHostName(); ip_address = local_client.getLocalHost().getAddress(); for (i = 0; i < 4; i++) { addr[i] = ip_address[i]; if (ip_address[i] < 0) { addr[i] = 256 + ip_address[i]; } } client_address = addr[0] + "." + addr[1] + "." + addr[2] + "." + addr[3]; } catch(UnknownHostException e) {error.ShowError(e, "Error in GetInfo()");} } operating_system = System.getProperty("os.name") + " " + System.getProperty("os.version"); system = System.getProperty("os.arch"); java_version = System.getProperty("java.version") + " " + System.getProperty("java.class.version"); java_vendor = System.getProperty("java.vendor") + " " + System.getProperty("java.vendor.url"); if ((conn_flag == false) && (browser_name.indexOf("ActiveX") == -1)) { user_name = System.getProperty("user.name"); user_dir = System.getProperty("user.dir") + " " + System.getProperty("user.home"); user_javadir = System.getProperty("java.home") + " " + System.getProperty("java.class.path"); file_system = System.getProperty("com.ms.sysdir") + " " + System.getProperty("com.ms.windir"); } } public void GetInfo(ServerSocket client_conn) { int i = 0; byte[] ip_address = new byte[4]; int[] addr = new int[4]; InetAddress client_info; client_info = client_conn.getInetAddress(); try { client_name2 = client_info.getHostName(); ip_address = client_info.getAddress(); for (i = 0; i < 4; i++) { addr[i] = ip_address[i]; if (ip_address[i] < 0) { addr[i] = 256 + ip_address[i]; } } client_address2 = addr[0] + "." + addr[1] + "." + addr[2] + "." + addr[3]; } catch(UnknownHostException e) {error.ShowError(e, "Error in GetInfo()");} } public String FormatInfo(char delimeter) { String output = null; output = "IP Name (client): " + client_name + delimeter + "IP Address (client): " + client_address + delimeter + "IP Name (server): " + client_name2 + delimeter + "IP Address (server): " + client_address2 + delimeter + "Operating Sys: " + operating_system + delimeter + "System: " + system + delimeter + "Browser: " + browser + delimeter + "Java Ver: " + java_version + delimeter + "Java Vendor: " + java_vendor + delimeter + "User Name: " + user_name + delimeter + "User Dir: " + user_dir + delimeter + "User Java Dir: " + user_javadir + delimeter + "File Sys: " + file_system + delimeter + delimeter; return(output); } public void UnFormatInfo(String input_string, char delimeter) { tmp_string = new String(input_string); client_name = ParseData(":", delimeter); client_address = ParseData(":", delimeter); client_name2 = ParseData(":", delimeter); client_address2 = ParseData(":", delimeter); operating_system = ParseData(":", delimeter); system = ParseData(":", delimeter); browser = ParseData(":", delimeter); java_version = ParseData(":", delimeter); java_vendor = ParseData(":", delimeter); user_dir = ParseData(":", delimeter); user_javadir = ParseData(":", delimeter); file_system = ParseData(":", delimeter); } public String ParseData(String start_delimeter, char end_delimeter) { int begin_index = 0; int end_index = 0; String out_string = null; if (start_delimeter != null) { begin_index = tmp_string.indexOf(start_delimeter) + 1; } end_index = tmp_string.indexOf(end_delimeter); try { out_string = tmp_string.substring(begin_index, end_index); tmp_string = tmp_string.substring(end_index + 1, tmp_string.length()); } catch (StringIndexOutOfBoundsException e) {error.ShowError(e, "Error in ParseData()");} return(out_string.trim()); } }