# MAC / IP Connection



## Gast (5. Jan 2006)

HI Leute!!
Ich habe einen Client / Server geschrieben und diesen Funktioniert super. Ich würde ihn gerne ausbauen und stoße an folgendes Problem. Wie ist es möglich eine Verbindung zwischen 2 verschiedenen Netzwerken zu ermöglichen.
Normaler wiese:


```
Socket clientSocket = new Socket(InetAddress.getByName(ip), port);
```

Mein Problem ist folgendes ich würde derne Datenpackete na ein Andress Netzwerk schicken kann aber zu diesem Netzwerk nicht connecten, da die Zieladresse eine 192.168.X.X ist. Und wenn ich von einer 192.168.X.X an einer im einen Andren netzt 192.168.X.X senden will geht Aber das Programm nich aus meinem Netzwerk raus. Die MAC-Adresse ist ja eine ein eindeutige Adress und mit Hilfe von der könnte ich eher die Connection aufbauen wie kann ich eine MAC in eine IP umwandeln bzw. Wie kann ich eine Connection zwischen 2 Netzerken machen die mit 192.168.X.X anfangen und das so das er nicht in meinem Netzwerk sucht nur mit MAC oder?

THX für eure Tips


----------



## Lim_Dul (5. Jan 2006)

Hm ich zwar keine Ahnung, was du meinst, aber ich glaube das weist du selber nicht 


```
Socket clientSocket = new Socket(InetAddress.getByName(ip), port);
```
Das geht, solange die ip Adresse erreichbar ist.
Das ist egal, ob die im gleichen Netzwerk ist oder am andern Ende der Welt.

Mac-Adressen hingegen gehen nur in einem Netzwerk. Aber an die kommst afaik mit java nicht dran und die brauchst du auch.

Wenn du den Zielhost nicht erreichen kannst, dann liegt das Problem nicht bei java sondern an deiner Netzwerkkonfiguration.


----------



## Gast (5. Jan 2006)

Es geht darum das wenn ich den Zielhost erreichen will funktioniert das solnage dieser im Selben netzwerk ist also wenn ich daten von einem Rechner bei mir zu Hause an den andren im Anderen zimmer Schicken will funktioniert es. Wenn ich aber Daten an einen Freund zB: 5 Straßen weiter schicken will, der auch ein Netzwerk zuhause hat geht es nicht. Der Grund ist folgender ER hat einen Router und ich auch. Er hat ein Netzwerk mit 192.168.X.X und ich auch mit 192.168.X.X und wenn ich jetzt Daten an ihn schicken will geht es über mein netzwerk nicht raus und das ist mein Problem das ich nciht weiß wie ich die Connection zu Ihm aufbauen kann. Und die MAC währe da eineindeutig nur weiß ich nicht wie ich mit Sockets auf eine MAC Connecten kann und ob das überhaupt geht. BZW kann man die IP andres Anreden wenn ein Router verwendet wird?


----------



## Gast (5. Jan 2006)

BZW wie kann ich eine Verbindung zu IHM direckt aufbauen wenn die IP'S nicht ausreichen gibt es da so was wie ne externe ip auf die ich zugreifen könnte?


----------



## Lim_Dul (5. Jan 2006)

Gast hat gesagt.:
			
		

> Es geht darum das wenn ich den Zielhost erreichen will funktioniert das solnage dieser im Selben netzwerk ist also wenn ich daten von einem Rechner bei mir zu Hause an den andren im Anderen zimmer Schicken will funktioniert es. Wenn ich aber Daten an einen Freund zB: 5 Straßen weiter schicken will, der auch ein Netzwerk zuhause hat geht es nicht. Der Grund ist folgender ER hat einen Router und ich auch. Er hat ein Netzwerk mit 192.168.X.X und ich auch mit 192.168.X.X und wenn ich jetzt Daten an ihn schicken will geht es über mein netzwerk nicht raus und das ist mein Problem das ich nciht weiß wie ich die Connection zu Ihm aufbauen kann. Und die MAC währe da eineindeutig nur weiß ich nicht wie ich mit Sockets auf eine MAC Connecten kann und ob das überhaupt geht. BZW kann man die IP andres Anreden wenn ein Router verwendet wird?


Mac geht nicht!
Eine Mac-Adresse kann man *nur* im lokalen Netz adressieren.

Und du kannst keine Verbindung direkt zu einem Rechner aufbauen, der hinter einem Router ist. (Zumindest einem Router der NAT macht, bevor jetzt hier ein Klugscheißer kommt )
Das einzige, was du machen kannst, ist eine Verbindung zu der IP des Routers aufzubauen. Dann muss dein Freund den Router nur noch so konfigurieren, dass eine Verbindung an den Router auf den speziellen Port in sein Netz weitergeleitet wird.


----------



## Gast (6. Jan 2006)

Und wie kann man die wirkliche adresse seiner routers rausbekommen? denn jeder router hat ja die default adresse. bzw wo muss ich bzw er gucken um die richtige adresse zu bekommen


----------



## Roar (6. Jan 2006)

Anonymous hat gesagt.:
			
		

> Und wie kann man die wirkliche adresse seiner routers rausbekommen? denn jeder router hat ja die default adresse.


 nö hat er nicht.


> bzw wo muss ich bzw er gucken um die richtige adresse zu bekommen


 in der router konfiguration, st doch von router zu router verschieden, er soll sein manual lesen oder einfach auf www.whatismyip.com gucken


----------



## Bleiglanz (6. Jan 2006)

vergiss alles über MACs, Router usw beim Programmieren -> da kannst du mit Java nicht dran

entweder du kannst den anderen Rechner anpingen ("er ist erreichbar") oder nicht; wie das gemacht wird ist eine ganz andere Baustelle im Betriebssystem



> Er hat ein Netzwerk mit 192.168.X.X und ich auch mit 192.168.X.X und wenn ich jetzt Daten an ihn schicken will geht es über mein netzwerk nicht raus und das ist mein Problem das ich nciht weiß wie ich die Connection zu Ihm aufbauen kann


LOL

SEIN Router hat eine öffentliche IP Adresse (was anderes ist doch für dich gar nicht sichtbar) und diese musst du (mit Port-Forwarding s. oben) verwenden

dass ihr beide 192.168.X.X/255.255.0.0 verwendet ist egal, du kannst natürlich nicht SEINE 192.168.42.42 schreiben, weil dein Rechner dann meint, dass das lokal ist und er deinen Gateway gar nicht erst danach fragt

Alternative: VPN


----------



## Gast (6. Jan 2006)

Bezüglich Port - Forwarding wo findet man etwas dazu. Meint ihr Port Forwarding im Programm oder beim Router(einzustellen)?


----------



## Roar (6. Jan 2006)

Anonymous hat gesagt.:
			
		

> Bezüglich Port - Forwarding wo findet man etwas dazu.


im handbuch des routers :!:


----------



## Dukel (6. Jan 2006)

Ausserdem wäre dyndns.org anzuschauen.

Und wenn man etwas mehr zusammen machen will könnte man sich ein VPN einrichten.


----------

