import org.pcap4j.packet.Packet;
import org.pcap4j.packet.DnsPacket;
import org.pcap4j.packet.DnsResourceRecord;
import org.pcap4j.packet.namednumber.DnsResourceRecordType;
import org.pcap4j.packet.Packet;
import org.pcap4j.packet.DnsPacket;
import org.pcap4j.packet.DnsResourceRecord;
import org.pcap4j.packet.namednumber.DnsResourceRecordType;
- ipToHostnameMap = new HashMap<String, Set<String>>();
+ @Override
+ public void gotPacket(PcapPacket packet) {
+ try {
+ validateAndAddNewEntry(packet);
+ } catch (UnknownHostException e) {
+ e.printStackTrace();
+ }
String hostname = dnsPacket.getHeader().getQuestions().get(0).getQName().getName();
for(DnsResourceRecord answer : dnsPacket.getHeader().getAnswers()) {
// We only care about type A records
String hostname = dnsPacket.getHeader().getQuestions().get(0).getQName().getName();
for(DnsResourceRecord answer : dnsPacket.getHeader().getAnswers()) {
// We only care about type A records
byte[] ipBytes = answer.getRData().getRawData();
// Convert to string representation.
String ip = Inet4Address.getByAddress(ipBytes).getHostAddress();
byte[] ipBytes = answer.getRData().getRawData();
// Convert to string representation.
String ip = Inet4Address.getByAddress(ipBytes).getHostAddress();
hostnameSet.add(hostname);
// Update or insert depending on presence of key:
// Concat the existing set and the new set if ip already present as key,
hostnameSet.add(hostname);
// Update or insert depending on presence of key:
// Concat the existing set and the new set if ip already present as key,
* @param hostname Hostname to check
*/
public boolean isRelatedToCloudServer(String address, String hostname) {
* @param hostname Hostname to check
*/
public boolean isRelatedToCloudServer(String address, String hostname) {