2010-06-03 6 views
0

J'ai un logiciel qui fonctionne comme une boîte noire, je n'y ai pas accès. Ce logiciel effectue des requêtes HTTP. Ce que je veux faire, c'est intercepter ces demandes, les transmettre, attraper la réponse, faire quelque chose avec, avant de transmettre la réponse au logiciel.Requêtes HTTP "Proxying"

Est-ce que cela peut être fait? Quelle est la meilleure méthode?

Merci

Edit: Les demandes sont à l'Internet à partir d'un intranet local via une passerelle/routeur. J'ai un accès root à ma machine. Une autre machine pourrait être utilisée comme passerelle intermédiaire.

Édition 2: Les demandes ne sont pas cryptées. Ce que j'essaie réellement de faire, c'est de sauvegarder les images qui sont demandées.

+1

Où fait-il les requêtes HTTP? Avez-vous un routeur en face de celui-ci? Combien de contrôle avez-vous sur son DNS, configuration de proxy, etc? Avez-vous reniflé le trafic réseau pour voir ce qu'il fait maintenant? – barrycarter

+0

@barry - ajouté plus d'informations à mon OP –

Répondre

0

Si la communication n'est pas cryptée, utilisez Ethereal (ou tout autre programme similaire) pour renifler la communication sur le réseau.

edit: puisque la communication n'est pas cryptée, vous pouvez le faire facilement avec Ethereal. Vous pouvez enregistrer chaque flux TCP indépendamment de là.

Edit2: Ok, vous voulez le faire automatiquement. Dans ce cas, je vous suggère de regarder deux outils disponibles sur Linux appelés tcpflow et tcpreen. Tcpreen crée un proxy similaire à ce que vous voulez entre un port local et un port distant. C'est un proxy TCP, pas un proxy HTTP donc cela signifie que vous devrez écrire un outil d'analyse pour isoler les flux HTTP qui contiennent les images que vous voulez (probablement en fonction du type MIME de la réponse). Ce n'est pas une tâche trop complexe, cependant, si vous comprenez comment le protocole HTTP fonctionne. Tcpflow est similaire à tcpreen sauf que c'est un renifleur au lieu d'un proxy. Utilisez l'outil que vous jugez le plus adapté à votre environnement.

+0

Les demandes ne sont pas cryptées. Ce que j'essaye de réaliser est de sauvegarder toutes les images qui sont demandées par le logiciel. N'est-ce pas éthéré appelé wireshark ces jours-ci? Peut-il être exécuté de manière non interactive/par lots? –

+0

@Richard. Ah, toi. Ethereal s'appelle maintenant wireshark. Désolé: les vieilles habitudes meurent dur, je comprends. Et il peut enregistrer n'importe quel flux de données dans un fichier, pas de problème. – Stephane

+0

problème est, je veux exécuter ce non-interactivement, et écrire pour classer chaque image demandée –

Questions connexes