Routage conect reseaux multiple [Résolu]

Signaler
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008
-
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008
-
Bonjour à tous,


Sur un pc, 2 téléphones mobiles connectés en USB pour un accès web en mode modem.
Ces téléphones vont me permettre de me connecter aux sites web mobiles i-mode et WAP.
Ces 2 téléphones sont donc déclarés dans les connections réseaux d’accès à internet.
Appelons les :


TEL1_imode et TEL2_wap


Je cherche comment router vers le bon téléphone en fonction de l’ USER AGENT qui se présente.


En effet je simule différents user-agent (merci CURL) .
Tous ceux qui commencent par « portalmmm » sont pour la techno i-mode, le reste pour le wap !

Auto didacte, je ne demande qu'à apprendre... Merci de votre aide

10 réponses

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

Je comprends mieux. Au départ, je pensais que tu utilisais les téléphones comme clients pour surfer. En fait, c'est pas le cas. Ca, c'est plus clair.

Donc en gros, tu as deux connexions internet sur ton pc : l'une via le téléphone imode, l'autre via le téléphone wap.

Alors je pense que ta question ne se résoudra pas avec PHP. En fait, PHP ne s'occuper ABSOLUMENT PAS de la connexion internet : c'est simplement un interpréteur de script qui renvoi du texte au serveur Apache qui lui envoit les requêtes.

Détaillons comment ça se passe.

Tu lances ton script. Je suppose que tu as opté pour la solution la plus simple à mettre en oeuvre : un serveur WAMP (avec Wamp ou EasyPHP, ou Apache + PHP, bref) qui est hébergé sur ton pc. Le script est donc le client pour les sites internet que tu vérifies.

Ton client web (IE, Firefox, Opera, n'importe) fait une requête à ton Apache local. Apache demande à PHP d'exécuter les lignes qui lui sont destinées.
Ce script va exécuter des requêtes HTTP via une connexion internet (l'un des téléphones) sur les sites web, qui vont renvoyer du texte en réponse, qui sera traité par ton script.

Bon. A aucun moment, ni Apache ni PHP ne se pose la question de la connexion internet utilisée.

PHP se contente de répondre à une requête de la part d'Apache, qui est locale.
Apache, quant à lui, ne fait qu'écouter un port (le 80). Il se contente de répondre sur le port de la machine distante (le client). En fait, c'est même géré par l'interface réseau. Les requêtes vers l'extérieur, c'est PHP qui les fait via l'interface réseau de la machine qui l'exécute (un port de sortie dont le numéro m'est inconnu).

La gestion du routage des requêtes sortantes de PHP se fait donc par l'interface réseau (la couche logicielle) de ton ordinateur.

Je ne sais pas vraiment comment router ces requêtes en fonction du user agent. Je pense que tu dois pouvoir faire quelque chose avec IPTABLES (si tu es sous Linux), ou avec... je ne sais pas quoi si tu es sous Windows. En fait, je pense que le mieux est un proxy. Il n'y a qu'à ce niveau là que tu pourras gérer quelles connexion utiliser en fonction des entêtes de la requête HTTP.
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

"Je cherche comment router vers le bon téléphone en fonction de l' USER AGENT qui se présente."
=> Je crois que tu veux faire le contraire : comment "router" vers le bon "site", en fonction du téléphone (et donc, de son USER-AGENT).

Le user-agent se récupère en PHP avec cette variable : $_SERVER['HTTP_USER_AGENT']

Pour connaitre les différentes valeurs possibles suivant le user agent => une petite recherche sur google devrait te conduire vers une liste ;)
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008

Auto didacte, je ne demande qu'à apprendre... Merci de votre aide
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008

arf mon message n'est pas passé, je recommence

Bonjour,

merci neige dhiver, mais je te confirme que non, je cherche bien à router vers le bon téléphone. J'ai la liste des user agents et je simule des navigation sur des sites web mobile afin de férifier si pas de liens ou d'images cassés, si les images sont aux bon format en fonction des contraintes des différents téléphones, les poids de pages et les temps de chargement. Le tous dans un cadre de service qualité pour les internautes sur téléphonie mobile.
j'envoi un GET et j'analyse la réponse http.
actuellement, je réalise ce travail manuellement et par programme ce sera plus rapides et plus cool, je n'aurai que les cas particuliers à traiter.

Pour l'instant je pense que je serai obliger d'utiliser un routage par proxy, mais je suis persuadé qu'il existe un moyen de l'éviter grace à un script puisque les connexions sont déclarées sous windows dans le panneau de config réseau.

donc merci de votre aide, si quelqu'un à des idées et des pistes à creuser...

Autodidacte, je ne demande qu'à apprendre... Merci de votre aide
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Oui, mais non. Tu ne peux pas router vers le téléphone, puisque quand il navigue, c'est lui qui fait la demande : la réponse lui est forcément adressée, et pas à un autre. Donc ce que tu dis n'a pas de sens.

Ton script va savoir quel téléphone navigue en fonction du user-agent, il pourra donner une réponse adaptée au téléphone. Le serveur web va donc renvoyer la réponse générée par php au téléphone qui a demandé la page.

Ce n'est pas du routage.
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008

oupsss, j'ai dû mal m'expliquer alors, dsl

je suis entièrement daccord avec toi, mon problème se traite avant, et c'est là que je me suis mal expliqué semble t-il.

Etape1:
un script identifi l'user agent sélectionné pour un test
ce script appel l'étape2

Etape2:
un script qui route vers le TEL1 ou TEL2
(TEL1_imode = tous les User Agent commençant par "portalmmm" , les autres vont vers TEL2)
ce script appel l'étape3

Etape3:
le script qui execute le GET et récup la réponse pour la suite du traitement
...
suite du traitement en local
....

en tout cas merci pour ton aide
Auto didacte, je ne demande qu'à apprendre... Merci de votre aide
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008

Simple rappel, les téléphones ne sont utilisés que comme de simples modem !


ils sont nécessaires pour récupérer des temps de réponses cohérents.


En effet, si la requete est faite avec un tel GPRS les temps de réponses seront plus long qu'avec un tel EDGE


En claire, se sont de simples modem, comme ci j'aivait 2 cartes réseaux pour accéder au net mais qui n'offrent pas les même perf !
alors je doit router avant d'envoyer mon GET
soit sur un imode soit sur un wap

les techno GPRS et EDGE seront sélectionneés en fonction du matériel c'est à dire en fonction du téléphone physiquement connecté comme modem et utilisé pour les tests

Auto didacte, je ne demande qu'à apprendre... Merci de votre aide
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

Je crois que je commence à comprendre... Mais en même temps, je n'en suis vraiment pas certain, parce que dans ce que tu dis, j'ai l'impression qu'il y a un peu de deux choses qui n'ont rien à voir.

Je crois donc comprendre que les téléphones sont utilisés comme modem... Comme modem pour... quoi ? Pour le serveur web qui se trouve sur ton pc ? Ou comme modem pour accéder au net, tout court ? Dans ce second cas, cela implique qu'il y a un autre client, qui se connecte au net VIA le téléphone portable. Et c'est là que se trouve l'incohérence, puisque tu parles de user-agent comme étant celui du téléphone... J'en déduis donc que le téléphone est aussi le client.

Alors j'ai du mal à savoir dans quelle direction orienter ma réflexion, et je ne sais pas quoi te répondre.
Si tu peux détailler un peu plus quels équipements tu as, à quoi chacun sert, ce que tu veux faire, etc... Ca m'aidera. En clair :
- quel est le client ?
- à quoi sert précisément (en terme de fonctionnement, pas de "titre") chaque téléphone ?
- quel est le rôle de ton pc ?
- à quoi souhaites-tu acéder ? Internet en passant par la connexion internet du pc ? Internet simulé par un serveur web de ton pc ?
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008

bonjour,

Je vais essayer d’éclairer au mieux ta lanterne :

Les téléphones servent uniquement à accéder au web

Les User Agent :
Je prend un user agent au hasard dans tous ceux qui existent (parce que n’importe quel UA est susceptible de se présenter sur un site web tel que Allociné par exemple).
Le User Agent est présenté par programme via CURL .
Je peux utiliser et présenter n’importe lequel (ci-dessous un exemple)

Exemple :
  $curl = curl_init();

  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_USERAGENT, 'portalmmm/2.0 N500i(c20;TB)');

  $html = curl_exec($curl);
  curl_close($curl);

Ensuite :

Pour pouvoir accéder à un site i-mode, il te faut disposer d’un téléphone qui support l’i-mode et qui soit équipé d’une SIM i-mode
(par exemple le  Samsung SGH – D520 avec une SIM i-mode)

Pour pouvoir accéder à un site WAP, il te faut disposer d’un téléphone qui support le WAP et qui soit équipé d’une SIM WAP
(par exemple le  sony ericsson K750i avec une SIM WAP)

C’est pour cette raison que j’utilise ce matériel configuré de cette façon comme simples modems d’accès au net.

Mon pc sert simplement à héberger le serveur php , les scripts et les modems connectés.

Le but est tout simplement d’accéder au net mobile par le biais d’un des deux téléphones.
Si user agent commence par « portalmmm » alors je dois router vers le samsung i-mode
(portalmmm = i-mode)
Si user agent ne commence pas par « portalmmm » alors je route vers le sony WAP pour accéder au net (par exemple vers allociné).

Il me faut donc désigner le bon modem pour pouvoir envoyer mon GET via CURL vers le site de Allociné.

Une fois le GET envoyé, évidement, la réponse http se récupère par le modem qui à fait l’envoi.

Puis mon script passe alors à un autre user agent pour refaire la même opération. D’où la nécessité de router soit vers l’i-mode soit vers le WAP.

Je vais ainsi vérifier plus de 250 sites i-mode et wap avec 81 user agent  i-mode et wap
Par exemple, toujours avec allociné, ils proposent une plateforme i-mode, je vais la tester avec tous les UA i-mode via le modem i-mode
Et ils proposent aussi une plateforme WAP que je vais tester avec tous les UA WAP via le modem WAP.

Mon programme doit donc :
1) Prendre un user agent  (c ok)
2) Vérifier s’il commence par « portalmmm »
-    Si   OUI   alors il utilise le modem i-mode
-    si   NON   alors il utilise le modem WAP
3) envoyer le GET (c ok)
4) analyser la réponse http (c ok)
5) prendre un autre user agent et recommencer x fois ( c ok)

reste le point 2 = routage vers le bon modem

Jusqu'à ce que tout les sites soient analysés avec tout les user agent

Merci de te retourner le cerveau avec moi !

Auto didacte, je ne demande qu'à apprendre... Merci de votre aide
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008

Bonjour et meilleurs veux à tous ,

merci pour ton aide Neige dhiver, c bien ce que je craignais et je vais donc m'organiser autour un routage proxy.
Merci à tous

Auto didacte, je ne demande qu'à apprendre... Merci de votre aide