123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- /*
- * This file is part of JSTUN.
- *
- * Copyright (c) 2005 Thomas King <king@t-king.de> - All rights
- * reserved.
- *
- * This software is licensed under either the GNU Public License (GPL),
- * or the Apache 2.0 license. Copies of both license agreements are
- * included in this distribution.
- */
-
- package de.javawi.jstun.test;
-
- import java.net.*;
-
- public class DiscoveryInfo {
- private InetAddress testIP;
- private boolean error = false;
- private int errorResponseCode = 0;
- private String errorReason;
- private boolean openAccess = false;
- private boolean blockedUDP = false;
- private boolean fullCone = false;
- private boolean restrictedCone = false;
- private boolean portRestrictedCone = false;
- private boolean symmetric = false;
- private boolean symmetricUDPFirewall = false;
- private InetAddress publicIP;
-
- public DiscoveryInfo(InetAddress testIP) {
- this.testIP = testIP;
- }
-
- public boolean isError() {
- return error;
- }
-
- public void setError(int responseCode, String reason) {
- this.error = true;
- this.errorResponseCode = responseCode;
- this.errorReason = reason;
- }
-
- public boolean isOpenAccess() {
- if (error) return false;
- return openAccess;
- }
-
- public void setOpenAccess() {
- this.openAccess = true;
- }
-
- public boolean isBlockedUDP() {
- if (error) return false;
- return blockedUDP;
- }
-
- public void setBlockedUDP() {
- this.blockedUDP = true;
- }
-
- public boolean isFullCone() {
- if (error) return false;
- return fullCone;
- }
-
- public void setFullCone() {
- this.fullCone = true;
- }
-
- public boolean isPortRestrictedCone() {
- if (error) return false;
- return portRestrictedCone;
- }
-
- public void setPortRestrictedCone() {
- this.portRestrictedCone = true;
- }
-
- public boolean isRestrictedCone() {
- if (error) return false;
- return restrictedCone;
- }
-
- public void setRestrictedCone() {
- this.restrictedCone = true;
- }
-
- public boolean isSymmetric() {
- if (error) return false;
- return symmetric;
- }
-
- public void setSymmetric() {
- this.symmetric = true;
- }
-
- public boolean isSymmetricUDPFirewall() {
- if (error) return false;
- return symmetricUDPFirewall;
- }
-
- public void setSymmetricUDPFirewall() {
- this.symmetricUDPFirewall = true;
- }
-
- public InetAddress getPublicIP() {
- return publicIP;
- }
-
- public InetAddress getLocalIP() {
- return testIP;
- }
-
- public void setPublicIP(InetAddress publicIP) {
- this.publicIP = publicIP;
- }
-
- public String toString() {
- StringBuffer sb = new StringBuffer();
- sb.append("Network interface: ");
- try {
- sb.append(NetworkInterface.getByInetAddress(testIP).getName());
- } catch (SocketException se) {
- sb.append("unknown");
- }
- sb.append("\n");
- sb.append("Local IP address: ");
- sb.append(testIP.getHostAddress());
- sb.append("\n");
- if (error) {
- sb.append(errorReason + " - Responsecode: " + errorResponseCode);
- return sb.toString();
- }
- sb.append("Result: ");
- if (openAccess) sb.append("Open access to the Internet.\n");
- if (blockedUDP) sb.append("Firewall blocks UDP.\n");
- if (fullCone) sb.append("Full Cone NAT handles connections.\n");
- if (restrictedCone) sb.append("Restricted Cone NAT handles connections.\n");
- if (portRestrictedCone) sb.append("Port restricted Cone NAT handles connections.\n");
- if (symmetric) sb.append("Symmetric Cone NAT handles connections.\n");
- if (symmetricUDPFirewall) sb.append ("Symmetric UDP Firewall handles connections.\n");
- if (!openAccess && !blockedUDP && !fullCone && !restrictedCone && !portRestrictedCone && !symmetric && !symmetricUDPFirewall) sb.append("unkown\n");
- sb.append("Public IP address: ");
- if (publicIP != null) {
- sb.append(publicIP.getHostAddress());
- } else {
- sb.append("unknown");
- }
- sb.append("\n");
- return sb.toString();
- }
- }
|