diff --git a/11/src/main/java/ch/zhaw/ads/TelNrSearchServer.java b/11/src/main/java/ch/zhaw/ads/TelNrSearchServer.java new file mode 100644 index 0000000..74a1fda --- /dev/null +++ b/11/src/main/java/ch/zhaw/ads/TelNrSearchServer.java @@ -0,0 +1,95 @@ +package ch.zhaw.ads; + +import java.io.*; +import java.net.MalformedURLException; +import java.net.URL; +import java.security.cert.Certificate; +import java.util.regex.*; + +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLPeerUnverifiedException; + + +public class TelNrSearchServer implements CommandExecutor { + + @Override + public String execute(String command) { + return findInPage(command); + } + + + private String findInPage(String url_string) { + URL url; + try { + + url = new URL(url_string); + HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); + + // dumpl all cert info + print_https_cert(con); + + // dump all the content + return print_content(con); + + } catch (MalformedURLException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return ""; + } + + + private void print_https_cert(HttpsURLConnection con) { + if (con != null) { + try { + System.out.println("Response Code : " + con.getResponseCode()); + System.out.println("Cipher Suite : " + con.getCipherSuite()); + System.out.println("\n"); + + Certificate[] certs = con.getServerCertificates(); + for (Certificate cert : certs) { + System.out.println("Cert Type : " + cert.getType()); + System.out.println("Cert Hash Code : " + cert.hashCode()); + System.out.println( + "Cert Public Key Algorithm : " + + cert.getPublicKey().getAlgorithm()); + System.out.println( + "Cert Public Key Format : " + + cert.getPublicKey().getFormat()); + System.out.println("\n"); + } + } catch (SSLPeerUnverifiedException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + + private String print_content(HttpsURLConnection con) { + if (con == null) return ""; + + StringBuffer result = new StringBuffer(100); + try { + System.out.println("****** Content of the URL ********"); + BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream())); + String input; + Pattern pattern = Pattern.compile("(0041|\\+41|0\\d{2})\\s?\\d{3}\\s?\\d{2}\\s?\\d{2}"); + Matcher matcher; + while ((input = br.readLine()) != null) { + matcher = pattern.matcher(input); + while(matcher.find()) { + result.append(matcher.group() + "\n"); + } + } + br.close(); + + } catch (IOException e) { + e.printStackTrace(); + } + return result.toString(); + } + +} diff --git a/11/src/test/java/ch/zhaw/ads/TelNrSearchServerTest.java b/11/src/test/java/ch/zhaw/ads/TelNrSearchServerTest.java new file mode 100644 index 0000000..b6094f5 --- /dev/null +++ b/11/src/test/java/ch/zhaw/ads/TelNrSearchServerTest.java @@ -0,0 +1,20 @@ +package ch.zhaw.ads; + +import org.junit.Test; +import org.junit.Before; +import static org.junit.Assert.*; +import java.util.*; +import java.io.*; + +public class TelNrSearchServerTest { + + TelNrSearchServer serverToTest; + + @Test + public void test1() { + serverToTest = new TelNrSearchServer(); + System.out.println(serverToTest.execute("https://tel.search.ch/?was=Meier")); + } + +} +