System-Default-Schnittstellenmetrik / -Gateway mit Java umgehen, geht das?

Hallo zusammen

Würde gerne mit Java bestimmen, über welchen Netzwerkadapter (resp. über welchen Provider) ich z.B. mit einem Programm welches die Klasse „Socket“ verwendet rausgehe.

Konkret z.B. ein HTTP-Client: Verwende NICHT den Adapter, der (z.B. manuell gesetzt um es unter Kontrolle zu haben) die Metrik 1 hat, sondern einen anderen mit manueller Metrik 2 oder 3 oder wie auch immer. Geht das irgendwie?

Oder ist Java noch nicht in der Lage, die unterschiedlichen Implementierungen im Hintergrund, etwa Linux vs. Windows, korrekt zu abstrahieren. (In etwa wie bei der ser. SChnittstelle, glaube da braucht man wie vor 10 Jahren eine Windows .dll oder Linux .so?)

Mit C/C++ könnte man das scheinbar, über irgendwelche Low-Level-Instruktionen, IOCTL und so…

Vielen Dank für die Feedbacks.

Grüsse, Jan

Mit C/C++…

ip - How to Change default gateway vie C - Stack Overflow

Geht wohl nicht mir purem Java… und falls mit C/C++ dazu ne Library programmiert werden würde: Ist dieses Netzwerz-Zeugs Teilmenge von „POSIX“ - oder müsste ich für Windows / Linux / UNIX komplett unterschiedlichen Code schreiben? (IOCTL scheint nur für Linux [UNIX?] zu sein…)

Aber ne Netzwerk-SW in welcher man auswählen kann über welchen Adapter es gehen soll (eben die OS-Schnittstellenmetrik quasi „überklatschen“) - das ist de facto wohl unmöglich. Oder…?

meinst du das?

https://docs.oracle.com/javase/tutorial/networking/nifs/definition.html

Also das Network Interface explizit setzen geht.

Hallo maki

Ja, das scheint in die richtige Richtung zu gehen - genau sowas meinte ich. Mal schauen, vielen vielen Dank!! :slight_smile: