diff --git a/src/net/azib/ipscan/fetchers/HostnameFetcher.java b/src/net/azib/ipscan/fetchers/HostnameFetcher.java index bc654aa1..5adf2795 100644 --- a/src/net/azib/ipscan/fetchers/HostnameFetcher.java +++ b/src/net/azib/ipscan/fetchers/HostnameFetcher.java @@ -62,7 +62,10 @@ public class HostnameFetcher extends AbstractFetcher { private String resolveWithMulticastDNS(InetAddress ip) { try { - return new MDNSResolver().resolve(ip); + MDNSResolver resolver = new MDNSResolver(); + String name = resolver.resolve(ip); + resolver.close(); + return name; } catch (IOException e) { return null; diff --git a/src/net/azib/ipscan/util/MDNSResolver.java b/src/net/azib/ipscan/util/MDNSResolver.java index 70b6e9cc..94e138db 100644 --- a/src/net/azib/ipscan/util/MDNSResolver.java +++ b/src/net/azib/ipscan/util/MDNSResolver.java @@ -1,13 +1,14 @@ package net.azib.ipscan.util; import java.io.ByteArrayOutputStream; +import java.io.Closeable; import java.io.DataOutputStream; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; -public class MDNSResolver { +public class MDNSResolver implements Closeable { DatagramSocket mdns = new DatagramSocket(); InetAddress mdnsIP = InetAddress.getByName("224.0.0.251"); private int mdnsPort = 5353; @@ -69,6 +70,10 @@ public class MDNSResolver { return decodeName(response, offset, respPacket.getLength() - offset); } + public void close() { + mdns.close(); + } + public static void main(String[] args) throws IOException { System.out.println(new MDNSResolver().resolve(InetAddress.getByName("192.168.0.2"))); }