# UDP Port testen | Ping Google?



## Dit_ (14. Sep 2011)

Hallo
ich soll testen ob der UDP Port von SysAdmin nicht gesperrt ist und kann für UDP Kommunikation verwendet werden.

Irgendwie schaffe ich es nicht Google anzupingen... Hat jemand nen Tipp für mich? 



```
public static void main(String[] args) {
        int testPort = 500;
        DatagramSocket aSocket = null;
        try {
            aSocket = new DatagramSocket();
            aSocket.setSoTimeout(5000);
            String msg = "ping";
            byte[] buf = msg.getBytes();
            DatagramPacket request = new DatagramPacket(buf, msg.length(), new InetSocketAddress(
                    "www.google.de", 80));
            aSocket.send(request);
            byte[] buffer = new byte[1000];
            DatagramPacket reply = new DatagramPacket(buffer, buffer.length, InetAddress.getLocalHost(), testPort);
            aSocket.receive(reply);
            System.out.println("Reply: " + new String(reply.getData()));
        } catch (SocketException e) {
            System.out.println("Socket: " + e.getMessage());
        } catch (IOException e) {
            System.out.println("IO: " + e.getMessage());
        } finally {
            if (aSocket != null) {
                aSocket.close();
            }
        }
        
    }
```

Danke schon mal!


----------



## tuxedo (14. Sep 2011)

Ist vielleicht ne blöde Frage: Aber woßher weißt du dass Google auf irgendwelche UDP Requests auf Port 80 antwortet?!

Google -> Web-Suchmaschine -> Webinterface -> Webserver -> lauscht typischerweise auf TCP Port 80, nicht aber auf UDP Port 80 ...

- Alex


----------



## Dit_ (14. Sep 2011)

das ist es ja, weiss ich nicht deswegen steht ja im Title "Ping Google?" 

Bin also dankbar für jede andere möglichkeit


----------



## tuxedo (14. Sep 2011)

Na so ersichtlich ist das nicht, vorallem nicht nach dem hier:



> Irgendwie schaffe ich es nicht Google anzupingen... Hat jemand nen Tipp für mich?



Du kannst jetzt weiter wild versuchen irgendwelche Webseiten via UDP zu erreichen (was wohl nicht gehen wird), oder du suchst dir irgend nen anderen Service der

a) im Netz frei verfügbar ist
b) groß und stabil genug ist um nahezu 100% Erreichbarkeit zu haben
c) der auf UDP lauscht...

Spontan fallen mir da Teamspeak Server ein. Die arbeiten mit UDP. Oder auch irgendwelchen freien SIP/VoIP Server. Auch Videodienste (nicht unbedingt Youtube und Co.) könnten UDP benutzen.

Du wirst um eine Google-Recherche nicht drum rum kommen. 

- Alex


----------



## Dit_ (14. Sep 2011)

was wäre wenn ich auf einem Root server einen UDPServer starte der einfach alle zurück gibt was ankommt. Wäre das ok?
Root server ist stabil.


```
public static void main(String[] args) {
    DatagramSocket sock;
    DatagramPacket pack = new DatagramPacket(new byte[256],
        256);
    try {
      sock = new DatagramSocket(7);
    } catch (SocketException e) {
      System.out.println(e);
      return;
    }
    // echo back everything
    while (true) {
      try {
        sock.receive(pack);
        sock.send(pack);
      } catch (IOException ioe) {
        System.out.println(ioe);
      }
    }
  }
```


----------



## tuxedo (14. Sep 2011)

Klar ist das okay.


----------



## TheRealSpikee (15. Sep 2011)

Erstmal : STOPP

PING hat NICHTS ! mit UDP zu tun. PING arbeitet weder auf TCP/IP noch auf UDP/IP ... sondern auf dem ICMP/IP-Stack ...



> Ping sendet ein ICMP(v6)-„Echo-Request“-Paket (ping) an die Zieladresse


Quelle : Wiki http://de.wikipedia.org/wiki/Ping_(Datenübertragung)

Dessweiteren : warum sendest du wahllos irgendwelche UDP-Pakete an irgendwelche Server ? Das hilft dir auch nicht rauszubekommen ob ein gewisser UDP-Port blockiert wird oder nicht.
Auch wäre erstmal zu klären :
WER oder WAS ist SysAdmin ?
In welche Richtung sollte die Ports blockiert sein ?
Welche Netzwerktopologie ?
Schematische Aufbau von deinem Rechner bis ins Netz ...

TeamSpeak ist die denkbar schlechteste Variante sowas zu testen ... denn TeamSpeak verwendet eine Technik namens UDP-Hole-Punching ... dabei ist völlig egal ob es Port-Redirects gibt oder nicht.
Auch ein Server im Netz der einfach alles zurücksendet was er empfängt ist Schwachsinn da der selbe Effekt eintritt.
Die einzige Möglichkeit zum Testen ist das ein Rechner von außen anfängt UDP-Pakete an dich zu senden ... ohne das du dies von innen initialisiert hast. Sollte dann was durchkommen weist du das UDP XX an deinen Rechner weitergeleitet wird ... was allerdings in einem großen Netz undenkbar ist das es ausgerechnet auf dein System geht ...


Also noch mal die Frage : was genau meinst du mit "ich soll testen ob der UDP Port von SysAdmin nicht gesperrt ist" ?
Denn mit UDP-Hole-Punching ist das völlig irrelevant so lange die Firewall dafür eingestellt ist und du die Kommunikation initialisierst.


----------



## Empire Phoenix (15. Sep 2011)

Denke die Frage ist, ob UDP verkehr ausgehen gespeert ist. Aber Stimmt schon mehr Infos benötigt.


----------

