Partage

Détection d'un réseau local

Cas pratique

Sujet résolu
Le 31 juillet 2012 à 9:18:00

Bonjour,

Je gère un petit réseau domestique. J'ai donc un serveur physique à la maison qui s'occupe de toute l'organisation.
Cependant ce serveur me sert aussi pour publier des sites web.
Je voudrais donc pouvoir détecter via un script PHP, si je me trouve où non sur le réseau domestique lorsque je vais sur la page http://www.monreseaudomestique.fr et ainsi soit afficher la page de gestion du serveur http://www.monreseaudomestique.fr:8080 si je suis sur le réseau local, soit afficher mes site web http://www.monreseaudomestique.fr:80.

J'ai donc pensé à vérifier que si les adresses 192.168.0.1 & 192.168.0.99 sont disponibles alors cela signifie que je me trouve sur le réseau local, cependant je ne trouve pas cela très rigoureux.
En sachant que le serveur Apache se trouve sur le réseau local je me demande si il existe une fonction php qui détecte par un booléen si un utilisateur se trouve sur le réseau local.

Est-ce que quelqu'un aurait une petite idée pour améliorer tout ça ?!

(PS : interdire l'accès via un .htaccess ou les paramètres du serveur Apache pour que la connexion ne se fasse que en local ne m'intéresse pas trop car j'aimerai ajouter une variable superglobale pour forcer l'apparition de la page de gestion du réseau en sachant que je n'interdit à personne de s'y connecter dans la mesure où il connait l'adresse de gestion et que cela n'induit pas de problème de sécurité, car il ne s'agit que d'une interface résumant les différents liens et chemins sur le réseau.)
Publicité
Le 31 juillet 2012 à 9:18:00
Le 31 juillet 2012 à 11:04:15

Vérifie *ton* ip, pas les ip disponibles. ;)
« Le vieux fascisme si actuel et puissant qu'il soit dans beaucoup de pays, n'est pas le nouveau problème actuel. On nous prépare d'autres fascismes. Tout un néofascisme s'installe par rapport auquel l'ancien fascisme fait figure de folklore (...). Au lieu d'être une politique et une économie de guerre, le néofascisme est une entente mondiale pour la sécurité, pour la gestion d'une « paix » non moins terrible, avec organisation concertée de toutes les petites peurs, de toutes les petites angoisses qui font de nous autant de micro-fascistes, chargés d'étouffer chaque chose, chaque visage, chaque parole un peu forte, dans sa rue, son quartier, sa salle de cinéma. » Gilles Deleuze, février 1977.
Le 2 août 2012 à 0:46:44

En la comparant à quoi ça n'a pas de sens non ?
Si je vérifie mon ip en sachant qu'elle est non statique elle va changer si je l'a compare à la fonction REMOTE_ADDR impossible
Le 2 août 2012 à 1:23:33

Pas ton IP WAN, ton IP LAN...

J'ai déjà été confronté à une situation similaire à la tienne : je devais m'assurer qu'un bout de script ne soit exécuté que s'il était visité par la machine sur laquelle il se trouvait.
Ma solution : vérifier l'IP du visiteur.

<?php
if(in_array(get_ip_address(), array('127.0.0.1', '::1'))) {
//blabla
}

Ce que tu dois faire est similaire.
Vérifier si l'IP du visiteur match la pattern 192.168.[0-9]{1,3}.[0-9]{1,3}
Et voilà. Tu sauras si tu es connecté à ton machin depuis le réseau local ou depuis Internet.
« Le vieux fascisme si actuel et puissant qu'il soit dans beaucoup de pays, n'est pas le nouveau problème actuel. On nous prépare d'autres fascismes. Tout un néofascisme s'installe par rapport auquel l'ancien fascisme fait figure de folklore (...). Au lieu d'être une politique et une économie de guerre, le néofascisme est une entente mondiale pour la sécurité, pour la gestion d'une « paix » non moins terrible, avec organisation concertée de toutes les petites peurs, de toutes les petites angoisses qui font de nous autant de micro-fascistes, chargés d'étouffer chaque chose, chaque visage, chaque parole un peu forte, dans sa rue, son quartier, sa salle de cinéma. » Gilles Deleuze, février 1977.
Le 2 août 2012 à 1:40:02

Les ip commençant de 0 à 10 (inclus) sont réservées aux PC sur le même réseau.

Donc comme l'a dit victor tu prends l'ip et si les premiers chiffres son compris entre 0 & 10 tu fais ton truc en t'incluant évidemment (127.0.0.1 si c'est sur ta machine).
Rencontre ados site de rencontre pour les ados.
anonyme
Photo
Le 2 août 2012 à 7:27:15

@hotgeart: Sauf qu'en l'occurence, c'est 192.168.*.*, mais c'est pareil…
Le 2 août 2012 à 11:33:21

Non quand je crée un serv sur un réseau local l'ip est 5.72.71.29 tu auras beau mettre 192.168.x tu arriveras jamais a me rejoindre
Rencontre ados site de rencontre pour les ados.
Le 5 août 2012 à 20:30:56

Bon alors j'ai utilisé la commande fopen pour vérifier si le lien est mort ou non, car la variable superglobale REMOTE_ADDR ne correspond pas avec ce que je voulais finalement et la commande get_ip_address ne fonctionne pas avec ma version du php semblerai.

Merci :-)
Le 5 août 2012 à 20:36:25

C'est surtout que get_ip_address() n'existe pas :p c'est une function que tu dois créer toi même
Rencontre ados site de rencontre pour les ados.
Le 5 août 2012 à 20:42:20

get_ip_address() c'est ma fonction pour trouver l'IP de l'utilisateur, sachant qu'il n'existe pas de fonction PHP ou de variable PHP utilisable pour ce faire.
« Le vieux fascisme si actuel et puissant qu'il soit dans beaucoup de pays, n'est pas le nouveau problème actuel. On nous prépare d'autres fascismes. Tout un néofascisme s'installe par rapport auquel l'ancien fascisme fait figure de folklore (...). Au lieu d'être une politique et une économie de guerre, le néofascisme est une entente mondiale pour la sécurité, pour la gestion d'une « paix » non moins terrible, avec organisation concertée de toutes les petites peurs, de toutes les petites angoisses qui font de nous autant de micro-fascistes, chargés d'étouffer chaque chose, chaque visage, chaque parole un peu forte, dans sa rue, son quartier, sa salle de cinéma. » Gilles Deleuze, février 1977.
Le 5 août 2012 à 22:25:23

Citation : victor

get_ip_address() c'est ma fonction pour trouver l'IP de l'utilisateur, sachant qu'il n'existe pas de fonction PHP ou de variable PHP utilisable pour ce faire.



Ah mince, c'était pas clair d'autant plus que $_SERVER["REMOTE_ADDR"] existe non ? ^^"
Le 5 août 2012 à 22:29:10

Non mais bon un coup de doc ne fait jamais de mal.
Rencontre ados site de rencontre pour les ados.
Le 5 août 2012 à 22:36:09

Citation : KzL

Citation : victor

get_ip_address() c'est ma fonction pour trouver l'IP de l'utilisateur, sachant qu'il n'existe pas de fonction PHP ou de variable PHP utilisable pour ce faire.



C'était pas clair d'autant plus que $_SERVER["REMOTE_ADDR"] existe non ? ^^"


Et si le mec est derrière un proxy ?
« Le vieux fascisme si actuel et puissant qu'il soit dans beaucoup de pays, n'est pas le nouveau problème actuel. On nous prépare d'autres fascismes. Tout un néofascisme s'installe par rapport auquel l'ancien fascisme fait figure de folklore (...). Au lieu d'être une politique et une économie de guerre, le néofascisme est une entente mondiale pour la sécurité, pour la gestion d'une « paix » non moins terrible, avec organisation concertée de toutes les petites peurs, de toutes les petites angoisses qui font de nous autant de micro-fascistes, chargés d'étouffer chaque chose, chaque visage, chaque parole un peu forte, dans sa rue, son quartier, sa salle de cinéma. » Gilles Deleuze, février 1977.
Le 5 août 2012 à 22:47:59

Citation : victor

Citation : KzL

Citation : victor

get_ip_address() c'est ma fonction pour trouver l'IP de l'utilisateur, sachant qu'il n'existe pas de fonction PHP ou de variable PHP utilisable pour ce faire.



C'était pas clair d'autant plus que $_SERVER["REMOTE_ADDR"] existe non ? ^^"


Et si le mec est derrière un proxy ?



C'est pas important à priori, puisque si qqn se trouve derrière un proxy déjà c'est pas quelqu'un de chez moi, donc il saute. Et si t'es sur mon réseau local tu n'es pas derrière un proxy et dans le pire des cas si je suis pas chez moi, je me connecte à mon serveur pptp et donc là je récupère mon ip à la maison qui prouve bien que je suis chez moi à priori.

J'ai donc préféré utiliser la fonction
@fopen("http://".$_SERVER["SERVER_ADDR"].":5000/", 'r');
pour tester si la page existe auquel cas et bien c'est que je suis sur mon réseau local, je ne cherche pas plus loin pour ce que je veux faire, car au pire si la page existe chez quelqu'un d'autre et bien il est redirigé chez lui en local avec la fonction
header("Location: http://".$_SERVER["SERVER_ADDR"].":5000/;");


Je pense que c'est correct, non ? :-)
Le 5 août 2012 à 23:07:25

C'est marrant. Tu poses une question, je te donne une solution, tu demandes des précisions, je te donne des précisions, hotgeart confirme ma solution, et maintenant tu viens dire que tu fais autrement et tu veux savoir si ta solution est correcte.
« Le vieux fascisme si actuel et puissant qu'il soit dans beaucoup de pays, n'est pas le nouveau problème actuel. On nous prépare d'autres fascismes. Tout un néofascisme s'installe par rapport auquel l'ancien fascisme fait figure de folklore (...). Au lieu d'être une politique et une économie de guerre, le néofascisme est une entente mondiale pour la sécurité, pour la gestion d'une « paix » non moins terrible, avec organisation concertée de toutes les petites peurs, de toutes les petites angoisses qui font de nous autant de micro-fascistes, chargés d'étouffer chaque chose, chaque visage, chaque parole un peu forte, dans sa rue, son quartier, sa salle de cinéma. » Gilles Deleuze, février 1977.
Le 5 août 2012 à 23:18:43

Je vous ai exposé ce que je veux voulais faire et comment je pensais faire.
Tu m'as dit comment tu pensais faire, on a discuté.
J'ai essayé de faire avec ce que vous m'avez proposé.
J'ai réfléchi de mon côté et j'explique comment j'ai fais, je pense qu'un forum c'est fait pour ça : "discuter" et peut-être confronter les idées à un problème posé par la même occasion, car meme si mon probllème est résolu c'est toujours intéressant je trouve, enfin question de point de vue, je suppose du coup.
Mais au moins ça aidera peut-etre quelqu'un à réfléchir si ce quelqu'un cherche une réponse à quelque chose de similaire.
Je vois pas le mal qui a, pcq au final, la question du proxy n'avait pas été posé et ça amène des détails.

Franchement je te comprends pas.. ^^"
Le 5 août 2012 à 23:24:18

A quoi ça sert de tester? Redirige le directement vers $_SERVER["SERVER_ADDR"].
Rencontre ados site de rencontre pour les ados.
Le 5 août 2012 à 23:30:49

$_SERVER["SERVER_ADDR"] renvoie l'ip local de mon serveur à savoir une ip de la forme 192.168.0.X.
Si je ne suis pas sur le réseau local elle n'est pas accessible, auquel cas, ça m'embête à cause de mon site que je veux laisser accessible pour tout autre visiteur.
Le 5 août 2012 à 23:49:32

Oui, mais je ne comprend pas si tu test $_SERVER["SERVER_ADDR"] il y a que toi sur la machine où il y a le script qui pourra y aller. Donc même les membres de ton réseaux local ne pourront pas y accéder. Tu veux quand même que les autres PC en local peuvent y accéder non? Ou alors j'ai pas compris :p
Rencontre ados site de rencontre pour les ados.
Le 5 août 2012 à 23:57:14

Citation : hotgeart

[..] si tu test $_SERVER["SERVER_ADDR"] il y a que toi sur la machine où il y a le script qui pourra y aller.



Pourquoi pense-tu que $_SERVER["SERVER_ADDR"] n'est pas accessible ?
Toutes les personnes de mon réseau local peuvent accéder à l'adresse et le test répondra vrai pour toute personne sur le réseau local (ou le réseau vpn) et si il répond faux alors ça redirige le visiteur sur mon site web visible de tous.

Détection d'un réseau local

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown