Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1006 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  reseau IP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

reseau IP

n°1505639
blooddevil
Posté le 21-01-2007 à 19:24:04  profilanswer
 

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
mood
Publicité
Posté le 21-01-2007 à 19:24:04  profilanswer
 

n°1505662
Ace17
Posté le 21-01-2007 à 20:23:45  profilanswer
 

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++

n°1505680
blooddevil
Posté le 21-01-2007 à 21:08:12  profilanswer
 

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 ...

n°1505694
Ace17
Posté le 21-01-2007 à 21:47:38  profilanswer
 

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
n°1505816
breizhbugs
Posté le 22-01-2007 à 11:18:46  profilanswer
 

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

n°1506012
blooddevil
Posté le 22-01-2007 à 18:01:00  profilanswer
 

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

n°1506483
g373
Posté le 23-01-2007 à 20:52:34  profilanswer
 

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 ^^

n°1506489
Ace17
Posté le 23-01-2007 à 21:01:54  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  reseau IP

 

Sujets relatifs
batch qui ping toutes les machines d'un réseauInstaller une imprimante réseau via un script
PPC et Reseaule transfert de fichier sur le reseau (avec Ada)
programmation drivers reseau sous winowsPrésentation style powerpoint et contenu dynamique en réseau.
C/C++ scan postes et applications réseauCable réseau
Récupérer le Full Name d'un utilisateur réseau en VBA [Résolu] Périphériques réseau VBS
Plus de sujets relatifs à : reseau IP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR