Zdanek devBlog+

April 27, 2010

InetAddress.isReachable() jest do bani

Filed under: develop, java — Tags: , — zdanek @ 09:56

Napisałem mały program testujący czy klient “widzi” prawidłowo adres i porty naszego serwera aplikacyjnego. Zdarza się, że Firewalle klientów skutecznie blokują łączność.

Zależało mi, aby w pierwszym kroku “spingować” hosta. Niestety wczoraj odkryliśmy buga, bo polegałem na metodzie InetAddress.isReachable(). Tymczasem sposób jest do chrzanu, bo implementacja nie pinguje a odpytuje usługę echo, która stoi na porcie 7. Wielu adminów blokuje tego typu usługi, starając się maksymalnie uszczelnić serwery. U nas w firmie też i dlatego nasi klienci dostawali informację, że istnieje brak łączności z jednym z serwerów.

Nie dostarczę dzisiaj rozwiązania, z braku czasu, ale wrócę do tematu kiedyś.
Poniżej wadliwy kod:


 final String host = "zdanek.ostrejezyki.pl";
 final int timeOut = 3000;

 final boolean status = InetAddress.getByName(host).isReachable(timeOut);

 if (status == false) {
      throw new IOException("Brak lacznosci z " + host);
 }

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress

WP-Highlight