Serveur en ligne, Mais Ip locale dans SERVER_ADDR - PHP - Programmation
Marsh Posté le 17-06-2008 à 15:26:23
J'ai pas compris, tu veux l'adresse locale, c'est celle que tu as dans $_SERVER['SERVER_ADDR'] donc que veux tu de plus
Marsh Posté le 17-06-2008 à 15:39:01
leflos5 a écrit : J'ai pas compris, tu veux l'adresse locale, c'est celle que tu as dans $_SERVER['SERVER_ADDR'] donc que veux tu de plus |
Non, je dis bien dans le titre de mon post que mon serveur est en lign sur le net, et au lieu d'avoir d'avoir l'ip PUBLIQUE (nnn.sss.xx.yyy) du serveur, j'ai son adresse locale, chez moi sur mon LAN, dans la variable $_SERVER['SERVER_ADDR'] quand j'appelle la page phpinfo
C'est mieux expliqué ?
Marsh Posté le 17-06-2008 à 15:41:34
theo92 a écrit : |
En fait, c'est l'IP publique que tu cherches, non ?
Marsh Posté le 17-06-2008 à 15:43:42
DjMerguez a écrit : |
Et oui, enfin, je la connais, mais elle devrait figurer dans cette variable
Marsh Posté le 17-06-2008 à 15:55:30
Ah, dans ce cas, vu que tu es derrière un routeur, le serveur lui-même ne connait pas l'adresse publique. Une solution serait de parser une page comme http://www.ip-adress.com/ , et de mettre en cache le résultat.
Marsh Posté le 17-06-2008 à 16:01:05
DjMerguez a écrit : Ah, dans ce cas, vu que tu es derrière un routeur, le serveur lui-même ne connait pas l'adresse publique. Une solution serait de parser une page comme http://www.ip-adress.com/ , et de mettre en cache le résultat. |
Oui, effectivement, ce serait une solution, mais je vois pas trop comment proceder ...
Q'appelles tu "parser une page" ?
je n'ai jamais fait, ou alors sans savoir que ça s'appelait comme ça !
Marsh Posté le 17-06-2008 à 16:07:20
Parser == lire le contenu d'un page.
Si tu as le allow_url_fopen, c'est aussi simple que :
Code :
|
Marsh Posté le 17-06-2008 à 16:11:10
DjMerguez a écrit : Parser == lire le contenu d'un page.
|
OK, et donc dans $html, je recupère le contenu de la page appellée, c'est ça ?
Marsh Posté le 17-06-2008 à 16:15:41
Exactement ! Un preg_match sera le plus simple (mais sans doute pas le plus rapide) pour récupérer l'adresse dans le code HTML. Évite de faire ça à chaque requête, ceci dit ^^
Marsh Posté le 17-06-2008 à 16:20:58
DjMerguez a écrit : Exactement ! Un preg_match sera le plus simple (mais sans doute pas le plus rapide) pour récupérer l'adresse dans le code HTML. Évite de faire ça à chaque requête, ceci dit ^^ |
je pensais a un truc, mais je ne pense pas que l'on puisse "écraser" ou remplacer une valeur d'une variable d'environnement ?
Marsh Posté le 17-06-2008 à 16:29:00
Je viens d'essayer, j'ai pu écraser la valeur :
$_SERVER['SERVER_ADDR'] = '128.0.0.1';
Mais, bien évidemment, à la prochaine requête, je retrouve mon adresse classique. Shared nothing !
Marsh Posté le 17-06-2008 à 16:31:49
DjMerguez a écrit : Je viens d'essayer, j'ai pu écraser la valeur : |
OK, bon merci beaucoup pour ce coup de main !
@+
Marsh Posté le 17-06-2008 à 20:26:28
DjMerguez a écrit : Ah, dans ce cas, vu que tu es derrière un routeur, le serveur lui-même ne connait pas l'adresse publique. Une solution serait de parser une page comme http://www.ip-adress.com/ , et de mettre en cache le résultat. |
DjMerguez a écrit : Je viens d'essayer, j'ai pu écraser la valeur : |
Oula Mais qu'est ce que vous allez chercher là comme horreur ???
Situ es sur apache(la moindre des choses pour php), tu geres cela via unVhost(lis la doc) ou tu spécifie ton IP externe et ton chemin dans ton FS, point final, Topic résolu
De l'extérieur tu ne tombes pas surton ip publique tout simplement parce que apache écoutes sur tes IPprivées et n'en gère pas d'autre
Marsh Posté le 18-06-2008 à 10:36:49
Bonjour,
Je pensais que le serveur répondant à l'adresse publique 83.nnn.xxx.sss la variable contiendrait cette même IP
Dans mes Vhost, j'ai cod' NameVirtualHost * et <VirtualHost *> sauf pour le vhost qui gère la redirection https où là j'ai specifié le port
Marsh Posté le 17-06-2008 à 14:41:44
Bonjour,
Comment puis je récuperer l'adresse locale de mon serveur (en ligne) à la place de l'ip Publique ?
Je suis certes, derrierre un routeur ...
L'adresse de mon serveur en local est bien 192.168.10.5, et celle ci que j'ai dans la variable apres un phpinfo() !
Si vous avez une idée ...
Merci d'avance
Message édité par theo92 le 17-06-2008 à 14:46:22