From: Janus Varmarken Date: Mon, 23 Jul 2018 21:37:42 +0000 (-0700) Subject: Main.java: extracting pairs related to events.tplinkra.com X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2358265161c32239eab967c41e52242ec34142e0;p=pingpong.git Main.java: extracting pairs related to events.tplinkra.com --- diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Main.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Main.java index 276560f..e0a51a3 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Main.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Main.java @@ -5,6 +5,7 @@ import edu.uci.iotproject.analysis.TcpConversationUtils; import edu.uci.iotproject.analysis.TriggerTrafficExtractor; import edu.uci.iotproject.io.TriggerTimesFileReader; import org.pcap4j.core.*; +import org.pcap4j.packet.IpV4Packet; import org.pcap4j.packet.namednumber.DataLinkType; import java.io.EOFException; @@ -12,6 +13,7 @@ import java.net.UnknownHostException; import java.time.Instant; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.concurrent.TimeoutException; @@ -122,6 +124,7 @@ public class Main { String tpLinkPlugIp = "192.168.1.159"; TriggerTrafficExtractor tte = new TriggerTrafficExtractor(pcapFile, triggerTimes, tpLinkPlugIp); final PcapDumper outputter = Pcaps.openDead(DataLinkType.EN10MB, 65536).dumpOpen("/Users/varmarken/temp/traces/output/tplink-filtered.pcap"); + DnsMap dnsMap = new DnsMap(); TcpReassembler tcpReassembler = new TcpReassembler(); tte.performExtraction(pkt -> { try { @@ -129,7 +132,7 @@ public class Main { } catch (NotOpenException e) { e.printStackTrace(); } - }, tcpReassembler); + }, dnsMap, tcpReassembler); outputter.flush(); outputter.close(); @@ -156,6 +159,29 @@ public class Main { else return 0; }); System.out.println("list of pairs produced"); + List eventstplinkraPairs = new ArrayList<>(); + List> otherPairs = new ArrayList<>(); + String hostname = "events.tplinkra.com"; + for (List lppp : pairs) { + IpV4Packet ipPacket = lppp.get(0).getFirst().get(IpV4Packet.class); + // If packets are associated with the hostname + if (dnsMap.isRelatedToCloudServer(ipPacket.getHeader().getSrcAddr().getHostAddress(), hostname) || + dnsMap.isRelatedToCloudServer(ipPacket.getHeader().getDstAddr().getHostAddress(), hostname)) { + eventstplinkraPairs.addAll(lppp); + } else { + // Pairs associated with different server + otherPairs.add(lppp); + } + } + HashMap pairCount = new HashMap<>(); + for (PcapPacketPair ppp : eventstplinkraPairs) { + if (pairCount.containsKey(ppp.toString())) { + pairCount.put(ppp.toString(), pairCount.get(ppp.toString()) + 1); + } else { + pairCount.put(ppp.toString(), 1); + } + } + System.out.println("pairCount map built"); // ---------------------------- } diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/analysis/PcapPacketPair.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/analysis/PcapPacketPair.java index 764fd0f..1d28895 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/analysis/PcapPacketPair.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/analysis/PcapPacketPair.java @@ -22,4 +22,8 @@ public class PcapPacketPair { public PcapPacket getSecond() { return mSecond; } + @Override + public String toString() { + return getFirst().length() + ", " + (getSecond() == null ? "null" : getSecond().length()); + } }