scan remote UDP port

wh4tup

Mitglied
hi,

ich hab ne methode die überprüfen soll of ein ziel system an einem bestimmten port "lauscht". das zielsystem ist ein sipclient der wahlweise auf port 5060 UDP oder TCP lauscht.

die überprüfung soll für tcp und udp funktionieren. mit tcp klappts das bereits. bei udp lässt sich scheinbar ein datagramsocket aufbauen auch wenn das zielsystem gar nicht rennt.

host="10.0.0.50"
port="5060"

Code:
DatagramSocket dSocket = null;
			try {
				dSocket = new DatagramSocket();
				InetAddress address = InetAddress.getByName(host);
				dSocket.setSoTimeout(5000);
				dSocket.connect(new InetSocketAddress(address, Integer.valueOf(port))) ;
				return true;
			} catch (SocketException e) {
				return false;
			} catch (UnknownHostException e) {
				return false;
			}  finally {
	            if (dSocket != null) {
	                dSocket.close();
	            }
	        }

die connect methode der klasse DatagramSocket versteh ich nicht. es wird keine exception geworfen obwohl der server nicht rennt. bei tcp wird hier eine IOException geworfen

laut api beschreibung müsste eine SocketException geworfen werden:

=>SocketException - if the connect fails

DatagramSocket (Java 2 Platform SE v1.4.2)
habs auch schon mit der send() method versucht. leider auch ohne erfolg.
 

Empire Phoenix

Top Contributor
Udp ist verbindungslos, die ist nur für security manager soweit ich weiß (bei applets zb). Einfach die packete richtung Server rausballern und hoffen das eine antwort kommt.
 

HoaX

Top Contributor
Dann lies doch mal deinen genannten Link:

If the remote destination to which the socket is connected does not exist, or is otherwise unreachable, and if an ICMP destination unreachable packet has been received for that address, then a subsequent call to send or receive may throw a PortUnreachableException. Note, there is no guarantee that the exception will be thrown.

Wichtig ist hier eben dass der Zielhost oder Router, wenn er existiert, eine "Destination unreachable" sendet. Wenn du direkt im selben Netz bist dann wird direkt kommuniziert. Bedeutet wenn der Rechner garnicht an ist, dann wird auch niemand das Paket senden.
 
G

Gast2

Gast
bei udp lässt sich scheinbar ein datagramsocket aufbauen auch wenn das zielsystem gar nicht rennt.
weil es bei UDP keinen im Netzwerk interessiert ob das Paket überhaupt von Dir losgeschickt wurde oder Deine Netzwerkkarte schon einen Fehler gemacht hat ... wenn Deine Netzwerkkarte keinen Fehler gemacht hat, dann wirst Du keine antwort bekommen ob da überhaupt jemand lauscht ... Dein Paket darf ungesehen im Netzrauschen verschwinden ... den Port-Scan über UDP wirst Du nicht realisieren können
 
G

Gast2

Gast
Zumindest nicht zuverlässig,
es wird nicht funktionieren

aber wenn man doch eine Antwort bekommt kann man zumindest sicher sagen, das da was ist.
dazu musst Du aber das Protokoll kennen was hinter diesem Port "versteckt" ist ... kennst Du das Protokoll nicht, dann wirst Du auch keine Antwort erhalten - denn der UDP-port (bzw. das Programm) muss bei einem falschen Paket nicht antworten ... Du bekommst ja noch nicht mal (wie bei TCP) eine Bestätigung das das Programm Dein Paket erhalten hat (bzw. das da überhaupt jemand auf dem Port lauscht)
 

wh4tup

Mitglied
ja wird nichtts nützen. primär gings mir ja darum möglichst schnell zu überprüfen ob ein zielsystem antwortet. das unteriegenden api wirft halt erst nach einiger zeit - oft weit mehr als 5 sec - einen TimeOutEvent an mein app.

danke für eure hilfe
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Java RMI bricht ab wenn Remote eine Methode ausgeführt werden soll Netzwerkprogrammierung 5
S .jar läuft local, aber nicht remote (SSH/Terminal) Netzwerkprogrammierung 10
L Remote Desktop per Java steuern Netzwerkprogrammierung 4
J Prüfen, ob remote UDT Server erreichbar ist Netzwerkprogrammierung 0
K Ansprechen eines Remote Druckers Netzwerkprogrammierung 2
S Socket Remote Administration Tool / Fernwartungsprogramm Netzwerkprogrammierung 9
D Remote-Objekt-Server : Alternative Methodenaufruflogik zu Reflection und hart codiert Netzwerkprogrammierung 5
S Socket Remote Desktop Netzwerkprogrammierung 19
X SSH Verbindung zu Remote Datenbank Netzwerkprogrammierung 2
J Windows Unix remote Netzwerkprogrammierung 2
W RMI Verschiedene Unterobjekte trotz selbem Remote Object Netzwerkprogrammierung 2
K Remote - Desktop Netzwerkprogrammierung 15
J Socket - Remote/Client Mac-Adresse? Netzwerkprogrammierung 3
G Remote der serialisieren Netzwerkprogrammierung 3
K Remote Shell in Java? Netzwerkprogrammierung 6
R RMI: Remote Object ohne Naming Service benutzen? Netzwerkprogrammierung 2
R PID's auf remote PC unter Windows herrausfinden Netzwerkprogrammierung 2
JavaDevOp Socket Status von UDP-Port prüfen (PortUnreachableException funktioniert nicht?) Netzwerkprogrammierung 32
FrankenDerStein Socket UDP Multithreading für ein Port Netzwerkprogrammierung 2
T multithreaded multiport socketListener beendet TCP-Port-Listening Netzwerkprogrammierung 16
C Proxy Server - Antwort auf welchem Port Netzwerkprogrammierung 1
precoc Port Listener Netzwerkprogrammierung 2
T Port forwarding Netzwerkprogrammierung 11
Rudolf Socket An welchen Port sendet ein Mailserver zu einem anderen Mailserver Netzwerkprogrammierung 8
C Socket Connection refused bei Internetverbindung - Welcher Port? Netzwerkprogrammierung 5
S Port abhören Netzwerkprogrammierung 11
M Gleicher Port für Senden und Empfangen ? Netzwerkprogrammierung 17
Dit_ UDP Port testen | Ping Google? Netzwerkprogrammierung 7
J Port lauschen Netzwerkprogrammierung 2
D Weiterer Thread auf Port 843 horcht Netzwerkprogrammierung 7
H Mysql port forwarding Netzwerkprogrammierung 5
Dit_ UDP Port bestimmen | Windows, MAC, Linux... Netzwerkprogrammierung 2
J UDP port packete lesen,wenn dieser besetzt ist Netzwerkprogrammierung 3
T Java Mail port ändern Netzwerkprogrammierung 4
1 Socket Immer offener Port? Netzwerkprogrammierung 11
R wie prüfe ich ob ein port frei is ? Netzwerkprogrammierung 7
S Port auf einer bestimmten IP-Adresse auslesen? Netzwerkprogrammierung 6
X Port scannen/schicken Netzwerkprogrammierung 4
M Socket Herausfinden ob server auf port läuft Netzwerkprogrammierung 8
F UDP Receive und Send am gleichen Port Netzwerkprogrammierung 3
G Port freigeben Netzwerkprogrammierung 3
P Sockets +Port Forwarding = Chaos Netzwerkprogrammierung 4
J GSM Modem an Serial Port ansteuern (AT commands) Netzwerkprogrammierung 2
T Server ohne Port Netzwerkprogrammierung 4
Schandro Herausfinden ob hinter einem Port bereits ein ServerSocket steckt Netzwerkprogrammierung 2
ABstraCT Applet multipler port Zugriff möglich ? Netzwerkprogrammierung 5
ABstraCT Telnet port Zugriff problem (public IP) Netzwerkprogrammierung 12
T ohne Port Freigabe. Netzwerkprogrammierung 6
K Problem mit Com-Port-Komunikation Netzwerkprogrammierung 57
G "Port already in use" RMI über SSL Netzwerkprogrammierung 9
S port lauschen Netzwerkprogrammierung 2
feuervogel Sockets - Lokalen Port aber nicht IP bestimmen Netzwerkprogrammierung 3
G port scanner Netzwerkprogrammierung 6
S Port mithören Netzwerkprogrammierung 9
P jakarta.HttpClient: Port bei GetMethod angeben Netzwerkprogrammierung 3
A port noch belegt Netzwerkprogrammierung 3
K Port 13 nur einmal abfragbar? Netzwerkprogrammierung 2
R Problem mit mehreren Anfragen auf demselben Port Netzwerkprogrammierung 2
TRunKX Ein Port mehrere Verbindungen? Netzwerkprogrammierung 7
H Port abhören Netzwerkprogrammierung 3
F freien Port finden Netzwerkprogrammierung 7
S GEHT DAS? - Nur eine Frage! (Printer Port direkt ansteuern?) Netzwerkprogrammierung 4
T Kann man jeden Port für Programm verwenden? Netzwerkprogrammierung 2
T PORT 80 überwachen Netzwerkprogrammierung 12
G an port lauschen Netzwerkprogrammierung 10
K nicht physikalische com port ansprechen ? Netzwerkprogrammierung 3
S SSLSocketFactory.createSocket(String hostname, int port),wo? Netzwerkprogrammierung 5
G Port belegt nach Server restart Netzwerkprogrammierung 5
R Port trotz aktiver Firewall nutzen ! Netzwerkprogrammierung 9

Ähnliche Java Themen

Neue Themen


Oben