Virtuelle IPs unter Windows und Port-Forwarding?
-
zu meinem Programmierpost: https://www.c-plusplus.net/forum/p2491487#2491487
Ich habe Simulation für ein TCP/IP-Gerät geschrieben - und kann davon viele auf einem Rechner auf verschiedenen Ports simulieren
Jetzt habe ich das Problem das die dazu passende Testsoftware leider nur auf verschiedene IPs aber nicht Ports (steht fest auf 1234) konfiguriert werden kann
im Internet habe ich folgendens gefunden:
http://www.howtogeek.com/51741/how-to-quickly-add-multiple-ip-addresses-to-windows-servers/
http://woshub.com/port-forwarding-in-windows/
mit
netsh interface ipv4 show interface
bekomme ich folgendes
Idx Met MTU State Name --- ---------- ---------- ------------ --------------------------- 1 50 4294967295 connected Loopback Pseudo-Interface 1 10 20 1500 connected LAN-Verbindung 19 20 1500 connected VMware Network Adapter VMnet1 20 20 1500 connected VMware Network Adapter VMnet8 16 20 1500 connected LAN-Verbindung 2
ipconfig liefert mir zu "LAN-Verbindung" folgendes
[code]
Ethernet-Adapter LAN-Verbindung:Verbindungsspezifisches DNS-Suffix: fritz.box
Verbindungslokale IPv6-Adresse . : fe80::45aa:8e5b:381f:6737%10
IPv4-Adresse . . . . . . . . . . : 192.168.178.27
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 192.168.178.1
{/code]bei mir ist DHCP aktiv - ich glaube das muss ich deaktivieren und die IP als feste IP eintragen
jetzt wäre meine Frage - weil ich absolut null Ahnnug von Netzwerk-Konfiguration haben was ich noch beachten muss damit das funktionieren kann
ich dachte mir eine virtuelle IP (wie muss die Subnetzmaske aussehen?, kann die eine voellig andere IP haben als meine feste?)
und dann ein Port-Forwarding (oder sowas) von der virtuellen IP(Port 1234) (für die Testsoftware) auf meinen lokale Simulation (irgendeinen Port) umleiten
Ideen?
-
Was meinst du mit virtuelle IP? Du kannst einem Netzwerkadapter eine oder mehrere IPs zuweisen. Das sind dann ganz normale IPs die sich nicht von der "Haupt-IP" deines Geräts unterscheiden. Darauf kann man dann auch ganz normal Ports binden.
Zu jeder IP gehört dann auch eine Subnetzmaske. So kannst du entweder IPs im selben Subnet vergeben wie die "Haupt-IP", oder aber auch komplett andere.
Eine Möglichkeit dazu wäre das alles von Hand über den IP-Settings Dialog einzustellen. Eine andere Möglichkeit wäre dein Programm so anzupassen dass es per API eine temporäre IP anlegt (und bei Programmende wieder entfernt).
Das geht über die Funktionen AddIPAddress und DeleteIPAddress.
-
zu meinem Netzwerkwissen: ausser den DHCP mal auszuschalten und statische IPs zu vergeben habe ich bisher nichts gemacht
Was meinst du mit virtuelle IP?
vielleicht meine ich auch nicht virtuelle IPs
ich mir nicht sicher was ich brauche um meine Problem zu lösen
- ich beschreibe einfach nochmal meinen Aufbau1. die Testsoftware kann sich nur mit Geräten verbinden die auf Port 1234 erreichbar sind (es gibt keine Möglichkeit dieses Defaultverhalten zu ändern) und ich moechte mich mit lokalen Simulations-Prozessen verbinden sind nicht alle gemeisam den Port 1234 nutzen können(und sollen)
2. meine GerätesimulationeN laufen auf localhost mit Port 105,106,107
jetzt moechte ich 3x die Testsoftware lokal starten und mit meinen 3 lokalen Simulationen verbinden.
Dafür brauche ich (weil die Testsoftware eben so schlecht ist) 3 verschiedenen IP-Adressen die auf localhost führen und welche die Kommunikation auf Port 1234 auf 105,106,107 umleitenalles lokal auf dem Rechner:
Testsoftware(1) "Eindeutige_IP_1":1234 <---> localhost:105
Testsoftware(2) "Eindeutige_IP_2":1234 <---> localhost:106
Testsoftware(3) "Eindeutige_IP_3":1234 <---> localhost:107die "Eindeutige_IP_xyz" könnte soweit ich das verstanden habe eine sog. virtuelle IP sein und damit die Kommunikation von dem festen Port 1234 auf meinen lokalen Simulations-Port kommt bräuchte ich dann glaube ich noch Portforwarding (oder?)
Eine Möglichkeit dazu wäre das alles von Hand über den IP-Settings Dialog einzustellen. Eine andere Möglichkeit wäre dein Programm so anzupassen dass es per API eine temporäre IP anlegt (und bei Programmende wieder entfernt).
Das geht über die Funktionen AddIPAddress und DeleteIPAddress.oder über das netsh Kommando auf der Kommandozeile/Batchdatei - oder ist das von was du sprichst etwas anderes?
und ich habe weitere Fragen:
-muss DHCP dafür wirklich deaktiviert sein? (bisschen Problematisch in der Domäne)
-brauche ich Portforwarding?
-
meine bisherigen Erkenntnisse:
1. DHCP muss deaktiviert sein - sonst ersetzt das "netsh add" Kommando einfach nur die IP welche vom DHCP gekommen ist
2. ich kann eine zusätzlich IP mit netsh anlegen
(in einer Admin-Konsole)add
netsh interface ipv4 add address "LAN-Verbindung" 192.168.178.103
delete
netsh interface ipv4 delete address "LAN-Verbindung" 192.168.178.103
3. ich kann dann mit dem Freeware Tool Herclues(http://www.hw-group.com/products/hercules/index_en.html) (TCP,UDP,RS232 Client/Server) eine Verbindung von TCP-Client auf 192.168.178.103:103 zu Server Listen(Port: 103) aufbauen und kann auch Daten senden/empfangen - d.h. die zusätzliche IP funktioniert schon mal
4. jetzt fehlt mir noch die 192.168.178.103:1234 auf localhost:103 Umleitung
(in einer Admin-Konsole)add portproxy
netsh interface portproxy add v4tov4 listenaddress=192.168.178.103 listenport=1234 connectaddress=localhost connectport=103
show portproxy
netsh interface portproxy show all
Abfragen auf ipv4: Verbinden mit ipv4: Adresse Anschluss Adresse Anschluss --------------- ---------- --------------- ---------- 192.168.178.103 1234 localhost 103
delete portproxy
netsh interface portproxy delete v4tov4 listenaddress=192.168.178.103 listenport=1234
wenn ich jetzt meinen Server auf localhost:103 starte und dann auf
192.168.178.103:103 verbinden will kommt ein Fehler, auf Port 103 funktioniert eshttp://postimg.org/image/ge1c6hs07/
eine Idee?
-
hatte mich im Post verschrieben:
wenn ich jetzt meinen Server auf localhost:103 starte und dann auf
192.168.178.103:1234 verbinden will kommt ein Fehler, auf Port 103 funktioniert es
-
Gast3 schrieb:
2. meine GerätesimulationeN laufen auf localhost mit Port 105,106,107
jetzt moechte ich 3x die Testsoftware lokal starten und mit meinen 3 lokalen Simulationen verbinden.
Dafür brauche ich (weil die Testsoftware eben so schlecht ist) 3 verschiedenen IP-Adressen die auf localhost führen und welche die Kommunikation auf Port 1234 auf 105,106,107 umleitenSchreib deine Gerätesimulation doch einfach so um dass sie auf Port 1234 einer angegebenen IP bindet. Wozu da sinnlos Proxies dazwischenschalten?
-
Schreib deine Gerätesimulation doch einfach so um dass sie auf Port 1234 einer angegebenen IP bindet. Wozu da sinnlos Proxies dazwischenschalten?
hab ich mir dann auch gedacht und gerade umgesetzt - funktioniert wunderbar
Danke
-
Bitte