Bonjour à tous,
Mon problème porte sur une règle NAT et de numéros de port, pour connaitre son IP et le port utilisé pour une connexion.
Avant de commencer, j'espère avoir posté au bon endroit, autrement j'en appelle aux modérateur pour le mettre à un endroit plus approprié. Merci !
J'ai sur mon routeur la règle NAT suivante :
Port externe 12345, interne 12345, IP locale : 192.168.1.10 protocoles : TCP et UDP
Et associé à une règle DHPC pour mon PC sur cette IP 192.168.1.10
La règle fonctionne bien car je l'ai déjà utilisé pour d'autres transferts.
J'ai de plus écrit une page PHP sur un serveur mutualisé qui m'affiche mon IP et mon numéro de port.
J'ai ensuite écrit un programme (en C) utilisant des sockets TCP pour réaliser une requête HTML sur cette page PHP.
Le but est de trouver son IP et le port utilisé en sortie de routeur.
Tout fonctionne bien dans la forme, mais dans le fond quelque chose cloche...
Je voulais déjà vérifier un point :
Coté PHP, j'utilise $_SERVER['REMOTE_PORT'] pour connaitre mon port publique (i.e. le port extérieur de mon routeur).
Est bien la bonne méthode, et ceci me renvoi-t-il bien le port externe au router utilisé par la connexion TCP ?
Maintenant le problème :
Concernant l'IP, récupérée avec $_SERVER['REMOTE_IP'], pas de soucis.
Mais le numéro de port parait inexact : en effet si je lis ma socket TCP au port 12345 de mon PC, alors la règle NAT devra faire passer la connexion par le port externe 12345. Or la page PHP me retourne un numéro radicalement différent (et changeant à chaque test).
Donc autre question :
La règle NAT peut-elle s'appliquer dans le sens sortant ?
Bref pour conclure je précise que mon but est que, bien sûr, dans ce cas-là, la page PHP me retourne 12345.
Voilà tout et merci par avance pour vos réponses et pour m'avoir lu jusqu'au bout.
Partager