Serveur en ligne, Mais Ip locale dans SERVER_ADDR

Serveur en ligne, Mais Ip locale dans SERVER_ADDR - PHP - Programmation

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 cité 1 fois
Message édité par theo92 le 17-06-2008 à 14:46:22
Reply

Marsh Posté le 17-06-2008 à 14:41:44   

Reply

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 :??:

Reply

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é ?

Reply

Marsh Posté le 17-06-2008 à 15:41:34    

theo92 a écrit :


Comment puis je récuperer l'adresse locale de mon serveur (en ligne) à la place de l'ip Publique ?


 
En fait, c'est l'IP publique que tu cherches, non ?

Reply

Marsh Posté le 17-06-2008 à 15:43:42    

DjMerguez a écrit :


 
En fait, c'est l'IP publique que tu cherches, non ?


Et oui, enfin, je la connais, mais elle devrait figurer dans cette variable

Reply

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.

Reply

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 !


Message édité par theo92 le 17-06-2008 à 16:01:26
Reply

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 :
  1. $html = file_get_contents('http://www.ip-adress.com/');

Reply

Marsh Posté le 17-06-2008 à 16:11:10    

DjMerguez a écrit :

Parser == lire le contenu d'un page.
 
Si tu as le allow_url_fopen, c'est aussi simple que :
 

Code :
  1. $html = file_get_contents('http://www.ip-adress.com/');



OK, et donc dans $html, je recupère le contenu de la page appellée, c'est ça ?

Reply

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

Reply

Marsh Posté le 17-06-2008 à 16:15:41   

Reply

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 ?

Reply

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 !

Reply

Marsh Posté le 17-06-2008 à 16:31:49    

DjMerguez a écrit :

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 !


OK, bon merci beaucoup pour ce coup de main !
@+

Reply

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 :
 
$_SERVER['SERVER_ADDR'] = '128.0.0.1';
 
Mais, bien évidemment, à la prochaine requête, je retrouve mon adresse classique. Shared nothing !


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

Message cité 1 fois
Message édité par Profil supprimé le 17-06-2008 à 20:27:21
Reply

Marsh Posté le 17-06-2008 à 23:40:31    

Pourquoi avoir besoin de cette adresse d'ailleurs :??:

Reply

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

Reply

Sujets relatifs:

Leave a Replay

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