reseau IP

reseau IP - C++ - Programmation

Marsh Posté le 21-01-2007 à 19:24:04    

bonjour à tous!
 
je vais direct à l'essentiel.
je code en C++/win32
 
j'ai un PC n°1 en reseau local derriere un modem-routeur (livebox pour ne pas citer).
le modem-routeur fournit des IP dynamiques à tout le reseau (c'est du NAT je pense et donc les ports de départ sont changés à la sortie vers internet, puis meme chose en sens inverse).
 
j'ai un PC n°2 dans une autre maison derriere un modem normal.
 
 
j'aurais voulu savoir comment résoudre ce probleme:
 
PC n°1 envoie une trame UDP par internet à PC n°2 <= ca marche (j'ai juste à mettre l'IP PC n°2 et un port)
PC n°2 envoie une trame UDP par internet à PC n°1 <= ca ne marche pas !
 
je suppose que le probleme vient du fait que je ne connais pas la vraie adresse IP du PC n°1 et que celle que j'obtiens avec des sites comme whatismyip me permet de connaitre celle du modem-routeur.
donc ma question est, en code C++, API win32, comment récupérer l'IP et le port de l'expéditeur d'une trame UDP afin d'adapter mes paquets UDP dans le sens n°2 -> n°1??
 
merci d'avance !!
un casse-couille  :hello:


Message édité par blooddevil le 21-01-2007 à 19:28:20
Reply

Marsh Posté le 21-01-2007 à 19:24:04   

Reply

Marsh Posté le 21-01-2007 à 20:23:45    

Il me semble qu'il te faut configurer ton routeur pour rediriger les datagrammes arrivant sur ton port N vers le port N d'une certaine adresse IP a l'intérieur du réseau. Et ce probleme n'a rien a voir avec C++

Reply

Marsh Posté le 21-01-2007 à 21:08:12    

tu me parles de créer un reseau en PAT alors que j'ai et veux garder un réseau NAT justement. Je pense qu'il faut juste que je recupère l'en-tete du paquet IP ou il y a l'IP du modem-routeur et le port dynamique, afin de pouvoir renvoyer un paquet avec ses informations en tant que destinataire, ce qui permettra au modem-routeur de rediriger l'info vers le bon PC. quelqu'un sait comment faire en win32 ? winsock/winsock2 ...

Reply

Marsh Posté le 21-01-2007 à 21:47:38    

En Winsock, il y a moyen de faire des raw sockets, c'est a dire que tu récuperes les en-tetes a la reception et tu les inclus a l'envoi. Il faut le préciser a la création du socket, c'est un truc qui ressemble a ca :
int fd = socket(AF_INET, SOCK_RAW, 0)


Message édité par Ace17 le 21-01-2007 à 21:48:00
Reply

Marsh Posté le 22-01-2007 à 11:18:46    

Bonjour,
La livebox contient un parefeu, celui ci est il bien reglé pour laissez entré les paquets entrant?

Reply

Marsh Posté le 22-01-2007 à 18:01:00    

bonjour !
lol oui oui ne t'inquiètes pas breizhbugs, le firewall est desactivée.
le probleme est plutot sur le coté dynamique de l'IP et du port contenus dans les paquets envoyés par le PC derrière la livebox

Reply

Marsh Posté le 23-01-2007 à 20:52:34    

Je crois que tu ne peut pas faire un ping depuis internet sur un pc dérriere un routeur
ton routeur a une addrese ip, les hôte derrière ont une ip local, du genre 192.168.1.10 ou 10.0.0.2, le routeur fait la correspondance entre tes ip locals et les addresse mac des hôtes.
 
Le modem routeur fournit des ip dynamique local qui ne peuvent pas être utiliser sur un réseau public.
 
Donc tu peut ping avec le pc1 le pc2 car le pc2 est derrière un modem.
 
La solution serait de désactiver la fonction routeur de ta live box...
 
Il doit y avoir un truc mais je ne me rappel plus...
 
Note : Si je dit des bétises pardonnez moi ^^

Reply

Marsh Posté le 23-01-2007 à 21:01:54    

g373 a écrit :

Je crois que tu ne peut pas faire un ping depuis internet sur un pc dérriere un routeur

Techniquement, on est toujours derriere un routeur pour quelqu'un :D  
 
 

g373 a écrit :

Note : Si je dit des bétises pardonnez moi ^^

Eh bien s'il comme il le dit, il est en NAT (et pas en PAT), ca veut dire qu'il dispose de plusieurs adresses IP publiques. Et donc ce qu'il veut faire est parfaitement possible. Mais ca m'étonnerait quand meme beaucoup.  
cf wikipedia :  

Citation :


NAT Pool de Source est la plus vieille des NAT. La première connexion venant de l'interieur prend la première adresse externe, la suivante la seconde, jusqu'à ce qu'il n'y ait plus d'adresse externe. Dans ce cas exceptionnel le port source n'est pas modifié. Ce type de NAT n'est plus utilisé.


 
Evidemment, dans le cas ou l'intéressé ne dispose que d'une seule adresse IP publique (ce qui semble etre le cas vu que whatismyip.com lui indique l'adresse IP de son routeur), eh bien je lui souhaite bon courage s'il ne veut pas passer par PAT.


Message édité par Ace17 le 23-01-2007 à 21:07:37
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed