Cphil51
Messages postés87Date d'inscriptionjeudi 22 juin 2006StatutMembreDernière intervention24 septembre 2007
-
26 févr. 2007 à 23:41
Cphil51
Messages postés87Date d'inscriptionjeudi 22 juin 2006StatutMembreDernière intervention24 septembre 2007
-
27 févr. 2007 à 22:59
Boujour a tous.
Je m'interesse en ce moment aux socket sous windows et j'ai un petit probleme actuellement. J'aimerais savoir comment récupérer l'IP d'un client qui se connecte au serveur. En tenant compte que je ne veux pas l'IP d'un hypothétique ROUTEUR (sinon je ne poserais pas de question). Voici le code :
Lorsque je tente des accès depuis l'exterieur par mon IP publique, le serveur m'indique l'IP de mon routeur (ma freebox en fait, soit 192.168.0.254). Les tests de connection sont fais en utilisant telnet fournit avec windows. Je voudrais que le serveur m'indique ma vraie IP, celle que m'attribue mon hebergeur.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 27 févr. 2007 à 08:48
Moi je comprends pas le problème, l'IP locale n'est pas présente sur le réseau
Qu'entends-tu par 'accès depuis l'exterieur'. Sur quelle machine s'exécute ton programme et depuis quelle machine te connectes-tu?
Cphil51
Messages postés87Date d'inscriptionjeudi 22 juin 2006StatutMembreDernière intervention24 septembre 2007 27 févr. 2007 à 10:56
Tout d'abord merci pour vos réponses.
J'appelle "accès depuis l'exterieur" une connection depuis internet (et non depuis mon réseau local).
Sinon yoyo269, j'ai deja regardé ta source qui se base sur une requete HTTP vers une fichier PHP. Mais j'aimerais résoudre ce problème directement depuis le code du serveur sans appeller de scripts distants... Et la il y a un hic => Il me sort l'ip du routeur (192.168.0.1) au lieu de mon IP internet, celle du client (82.236.***.***)
Dans ton travail en fait, il me faudrait savoir comment dans son mécanisme interne, PHP récupère l'IP du client (mais en plus simple )
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 27 févr. 2007 à 11:14
Et bien Cphil51, php n'a rien avoir là-dedans.
Ce qui permet d'avoir ton IP internet, c'est le fait que le serveur soit extérieur à ton installation.
Et là c'est très simple. Autrement avec un routeur et en local, je te souhaite bien du courage.
Ma solution est on ne plus simple je pense et très rapide.
Si tu veux je te file le code php pour que tu fasses toi-même ta page php, aucun souci.
En tous cas, si tu trouves une autre méthode, poste ta source sur cppfrance, ça intéressera bcp de monde à mon avis.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 27 févr. 2007 à 12:47
Tu veux récupérer l'IP du client non? Et tu récupères l'IP du serveur?
Normalement il n'y a aucun problème pour connaitre l'IP du client, tu aura toujours l'IP publique, parce que c'est la seule qui est routable.
Je m'y connais pas en socket, mais tu es sur que csin.sin_addr est l'adresse du client?
Cphil51
Messages postés87Date d'inscriptionjeudi 22 juin 2006StatutMembreDernière intervention24 septembre 2007 27 févr. 2007 à 12:59
oui csin.sin_addr contient (normalement) l'IP du client mais il doit y avoir un probleme au niveau du protocole. Il doit y avoire un magnière de traverser le routeur sans problème je pense. Je vais faire des recherches... mais ca fais deja un aprèm. que je planche la dessus :(
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 27 févr. 2007 à 13:06
Oui c'est bien ça vecchio, on récupère l'adresse IP de la personne qui vient de se connecter (être acceptée), donc celle du client.
Bon courage Cphil51, à mon avis t'es pas sorti de l'auberge !!! lol
Cphil51
Messages postés87Date d'inscriptionjeudi 22 juin 2006StatutMembreDernière intervention24 septembre 2007 27 févr. 2007 à 13:22
merci des encouragement lool
Mon serveur est sur ma machine (192.168.0.3). 192.168.0.254 c'est la freebox.
Sinon est-ce que quelqu'un connait NAT? Est ce que ca aurait un rapport avec mon problème?
Cphil51
Messages postés87Date d'inscriptionjeudi 22 juin 2006StatutMembreDernière intervention24 septembre 2007 27 févr. 2007 à 13:31
Ca a l'air de marcher en fin de compte. Le probleme ce situe surement sur la facon dont sont traité les packets... Je pense qu'ils ne sortent pas de chez moi mais qu'ils sont reconnus par le routeurs et renvoyés directement...
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 27 févr. 2007 à 13:40
Comme je le disais avant, il vaut (faut ?) mieux passer par l'extérieur c'est plus simple et plus fiable.
Peut-être que l'on peut faire autrement mais moi j'avais déjà cherché pas mal et j'en étais arrivé à ma page php.
As-tu une contrainte qui t'interdit d'accéder à un serveur externe pour avoir ton IP internet, ou c'est toi qui intimement n'en veut pas ?
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 27 févr. 2007 à 13:48
En l'occurence je crois pas que ce soit son problème: ce n'est pas grave d'avoir une ip locale si effectivement il se connecte depuis le serveur
C'est bien il VAUT mieux
Cphil51
Messages postés87Date d'inscriptionjeudi 22 juin 2006StatutMembreDernière intervention24 septembre 2007 27 févr. 2007 à 20:54
En fait je ne veut pas dépendre d'un serveur tout simplement. Je pense
que ce n'est pas une solution durable. Si un jour le serveur disparait
ou ne renvoie plus l'IP, que devient le super programme que tu a fait?
Tu serais obligé de publier un patch (et ca soule :p)
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 27 févr. 2007 à 22:36
lol ! C'est un point de vu.
Moi je suis chez free, la page php que je consulte c'est la mienne, donc pas de souci.
Franchement avant que ça crashe !!!
Mais bon...c'est vous qui voyez.