Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MIGAPROXY : PROXY EN PHP COMPILABLE AVEC BAMCOMPILE


Information sur la source

Catégorie :Réseau & Internet Classé sous : proxy, get, post, socket, serveur Niveau : Initié Date de création : 02/09/2008 Vu : 3 062

Note :
6,5 / 10 - par 2 personnes
6,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

Description

Ce proxy supporte les methode POST et GET

il est en version squelette car il souffre de quelque lenteur

 

Source

  • <?php
  • /*
  • *******************************************
  • * Migaproxy par Migadesktop *
  • * Mek-in-gold@live.fr *
  • *******************************************
  • */
  • // PS : Cette source est compilable en executable avec bamcompile
  • // vous trouverez bamcompile sur http://www.bambalam.se/bamcompile/
  • set_time_limit(0);
  • echo "MigaProxy Version squelette\n";
  • $host = "L'ip d'ordinateur ou vous execute ce proxy";
  • $port = 8080;
  • while(1)
  • {
  • // creation d'une socket d'ecoute
  • $socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create
  • socket\n");
  • // bind de la socket sur le port 8080
  • $result = socket_bind($socket, $host, $port) or die("Could not bind to
  • socket\n");
  • // ecoute de la socket
  • $result = socket_listen($socket, 3) or die("Could not set up socket
  • listener\n");
  • // la socket accepte la conection
  • $spawn = socket_accept($socket) or die("Could not accept incoming
  • connection\n");
  • // lecture des donéee envoyé par le navigateur
  • $input = socket_read($spawn, 1024) or die("Could not read input\n");
  • // extration dans la requete du navigateur de l'url demander et de la methode GET ou POST
  • $subject = substr($input,0,strpos($input,"HTTP"));
  • if (eregi('GET', $subject)) {
  • echo "\n Methode : GET\n";
  • $subject = substr ($subject,4,strlen($subject));
  • }
  • else
  • {
  • echo "\n Methode : POST\n";
  • $subject = substr ($subject,5,strlen($subject));
  • }
  • preg_match('@^(?:http://)?([^/]+)@i',
  • $subject, $matches);
  • // envoi de la requete du navigateur au serveur web concerné et ecoute de sa reponse
  • // P.S : probleme d'incompatibilité avec google dans cette version
  • echo "\nserveur : \n(".$matches[1].")\n";
  • echo "\nrequete : \n(".$input.")\n";
  • if ($matches[1]!="www.google.fr" && $matches[1]!="www.google.com")
  • {
  • $web = fSockOpen($matches[1], 80, $codeErreur, $msgErreur, 1);
  • fputs($web,$input);
  • $reponse="";
  • while (!feof($web)) {
  • $reponse.=fgets($web, 128);
  • }
  • fclose($web);
  • }
  • else
  • {
  • $reponse="<H1>Google n'est pas pris en charge par Migaproxy , veuillez attendre une version compatible!";
  • }
  • echo "\nserveur : \n(".$reponse.")\n";
  • // envoie de la reponse du serveur web demandé par le navigateur au navigateur client
  • socket_write($spawn, $reponse, strlen ($reponse)) or die("Could not write");
  • socket_close($spawn);
  • socket_close($socket);
  • echo "\nRequete Terminer!\n";
  • }
  • ?>
<?php
/*
*******************************************
*                Migaproxy par Migadesktop                  *
*                      Mek-in-gold@live.fr                         *
*******************************************
*/
// PS : Cette source est compilable en executable avec bamcompile
// vous trouverez bamcompile sur http://www.bambalam.se/bamcompile/

set_time_limit(0);
echo "MigaProxy Version squelette\n";
$host = "L'ip d'ordinateur ou vous execute ce proxy";
$port = 8080;
while(1)
{
// creation d'une socket d'ecoute
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create
socket\n"); 
// bind de la socket sur le port 8080
$result = socket_bind($socket, $host, $port) or die("Could not bind to
socket\n");
// ecoute de la socket 
$result = socket_listen($socket, 3) or die("Could not set up socket
listener\n");
// la socket accepte la conection
$spawn = socket_accept($socket) or die("Could not accept incoming
connection\n");
// lecture des donéee envoyé par le navigateur 
$input = socket_read($spawn, 1024) or die("Could not read input\n");

// extration dans la requete du navigateur de l'url demander et de la methode GET ou POST
$subject = substr($input,0,strpos($input,"HTTP"));
if (eregi('GET', $subject)) {
echo "\n Methode : GET\n";
$subject = substr ($subject,4,strlen($subject));   
}
else
{
echo "\n Methode : POST\n";
$subject = substr ($subject,5,strlen($subject));   
}
preg_match('@^(?:http://)?([^/]+)@i',
    $subject, $matches);

// envoi de la requete du navigateur au serveur web concerné et ecoute de sa reponse
// P.S : probleme d'incompatibilité avec google dans cette version
echo "\nserveur : \n(".$matches[1].")\n"; 
echo "\nrequete : \n(".$input.")\n";
if ($matches[1]!="www.google.fr" && $matches[1]!="www.google.com")
{
$web = fSockOpen($matches[1], 80, $codeErreur, $msgErreur, 1);
fputs($web,$input);
$reponse="";
while (!feof($web)) {
       $reponse.=fgets($web, 128);
	   }
fclose($web);
}
else
{
$reponse="<H1>Google n'est pas pris en charge par Migaproxy , veuillez attendre une version compatible!";
}
echo "\nserveur : \n(".$reponse.")\n";

// envoie de la reponse du serveur web demandé par le navigateur au navigateur client
socket_write($spawn, $reponse, strlen ($reponse)) or die("Could not write");

socket_close($spawn);
socket_close($socket);
echo "\nRequete Terminer!\n";
}
?>

Conclusion

voila des idée d'optimisation sont les bienvenue
 

Commentaires et avis

signaler à un administrateur
Commentaire de coucou747 le 02/09/2008 12:39:07

idee d'optimisation : tu forkes de facon a avoir un processus par requete.

signaler à un administrateur
Commentaire de qbasic le 02/09/2008 13:38:54

tu veux dire pour qu'il n'attende pas la fin du traitement d'une requete avant d'en traiter une autre

c'est sa ?

signaler à un administrateur
Commentaire de coucou747 le 02/09/2008 13:47:49

oui

signaler à un administrateur
Commentaire de djmmix le 02/09/2008 19:35:00

tien je savais pas qu'on pouvais compiler du php en exe ^^'

signaler à un administrateur
Commentaire de coucou747 le 02/09/2008 19:47:39

djmmix, pourquoi tu dis ca ?

signaler à un administrateur
Commentaire de djmmix le 03/09/2008 00:36:01

// PS : Cette source est compilable en executable avec bamcompile
// vous trouverez bamcompile sur http://www.bambalam.se/bamcompile/

ici marqué dans la source

signaler à un administrateur
Commentaire de yoman64 le 03/09/2008 13:33:07

On ne peut pas compiler du php en exe. Le programme en question "bamcompile" fait juste écrire le script php à la fin d'un launcher, qui n'est ni plus ni moins que le moteur php avec toutes ses librairies compilé statiquement.

Ça donne un fichier énorme, a vu de nez je dirais qu'un simple hello world doit faire pas loin d'un megaoctet alors qu'un hello world en C ça fait quelques octets a tout casser... Plus tu as besoin d'options dans php, plus le launcher sera gros.

Bref c'est pas mal n'importe quoi.


Bon maintenant une question pour l'auteur: Pourquoi google, qui est le site le plus commun et le plus simple qu'on puisse trouver,n'est pas pris en charge ?

signaler à un administrateur
Commentaire de qbasic le 03/09/2008 13:35:39

je n'en sais rien ,
il faut que j'analyse ce probleme pour comprende pouquoid
google parvient a faire bugger le script

signaler à un administrateur
Commentaire de GillesWebmaster le 08/09/2008 16:48:48 10/10

brillant!

signaler à un administrateur
Commentaire de 0x586e le 16/09/2008 03:31:45

http://www.devshed.com/c/a/PHP/Socket-Programming-With-PHP/2/

Pas la peine de changer les commentaires de langue ..

signaler à un administrateur
Commentaire de coucou747 le 16/09/2008 10:52:25 3/10

il s'en est fortement inspire, mais c'est pas un plagia non plus...


bon, moi je vais mettre une mauvaise note pour plusieurs raisons :
-c'est lent, alors qu'on peut faire plus rapide juste en ajoutant un fork
-ne pas citer la source, c'est mal
-il n'analyse pas la requete et laisse donc passer des entetes plutot mauvaises (Proxy-connection, etc...)

signaler à un administrateur
Commentaire de djmmix le 16/09/2008 10:53:06

0x586e:"http://www.devshed.com/c/a/PHP/Socket-Programming-With-PHP/2/

Pas la peine de changer les commentaires de langue .."

clair que c'est tres similaire... sauf le milieu du code pour eviter google :p
a par sa le code est 100 % le même que celui du site anglais  c'est pas bien le copiage :p

signaler à un administrateur
Commentaire de qbasic le 16/09/2008 11:03:47

cette source ne sera pas mis a jours

raison : le temp me manque

pour les fausses accusation de copiage :

1. je ne vois pas que le code resemble a un proxy

2. un code socket php resemblera forcement a un autre code qui utilise des socket , du php c'est du php c'est ni du c++ , ni rien d'autre

voila tout et bon coding a tous ;-)

signaler à un administrateur
Commentaire de coucou747 le 16/09/2008 11:28:00

ouais enfin... t'as les memes or die. alors que tes messages d'erreurs a toi sont en francais...

signaler à un administrateur
Commentaire de griffondorr le 22/03/2009 00:33:02

j'ai télécharger bampcompile sur ce site :
http://www.bambalam.se/bamcompile/

une fois que je l'ai télécharger, faut faire comment pour l'installer et l'utiliser ? merci de répondre ;)

signaler à un administrateur
Commentaire de griffondorr le 22/03/2009 01:19:04

je suis tomber sur ce tutorial :

http://translate.google.com/translate?hl=fr&u=http%3A%2F%2Fforums.tizag.com%2Farchive%2Findex.php%3Ft-748.html

mais je l'ai pas trop compris, pourriez vous me l'expliquer svp ?

signaler à un administrateur
Commentaire de griffondorr le 22/03/2009 01:31:06

j'ai télécharger le logiciel et ensuite j'ai dézziper mon zip, et une fois que j'ai fais sa, je fais quoi ? car j'ai déjà mes sources php dans un dossier jaune que j'ai a part sur mon bureau , comment je fais pour le compiler ce fichier a part avec bampcompiler svp ? merci de me répondre

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Serveur socket [ par Tibo82 ] Je débute en php et en fait je dois developpez un serveur simple à l'aide de socket. Ce serveur devra juste recevoir un caractère correspondant à une erreur GET/POST [ par lolo49 ] lolo49bonjour,j'ai un souci avec PHP4je résume : j'ai une base de donnée MySql avec des clientsje peux soit - afficher la liste complète so Socket bind : erreur... [ par skurvy ] Voila, j'aimerais utiliser les sockets pour faire un petit jeu, mais ca ne va pas... /// voila le de but de mon programme&lt;?$ip=$_SERVER["REMOTE_ADD HELP socket [ par OverDarck ] Je n'arrive pas a utiliser les fonction socket ou meme fsockopen sur free et sur un autre serveur profesionel, alors que la meme source utilisatn ces Variable get et post : transformation automatique [ par TULGRIM ] Bonjour a tous,Suite au changement de version de non serveur php, il me faut transformer toutes les varaibles envoyees par les formulaires et les URL Différence entre post et get? [ par chris81 ] bonjour,pourriez vous m'expliquer la difference entre post et get mis a part le fait que le get met les valeurs dans la barre d'adreese.mercihttp://ww Socket et redirection serveur PROBLEME ! [ par Antidote ] Bonjour j'ai un pb entre deux socket. J'envoie une requette http par socket, le server me répond par un code 302 et une adresse de redirection. Quand Serveur Socket [ par Astalavista ] Je chercher le moyen de cree un serveur en PHP avec des sockets.Je compte fair un programme en un autre language (Client) qui communiquerais avec mon pb $_POST $_GET avec Internet explorer [ par manale ] dans un formulaire, j'ai remplacer le bouton standart par &lt;input type="image" src="images/bouton_v.gif" value="ok" name="valider"&gt;sous l'explora Proxy et php [ par Hades51 ] Bonjour a tous,J'ai configur&#233; php pour attaquer un serveur smtp qui se trouve en dehors du r&#233;seau local de l'entreprise ou se situe le serve


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC Magic

Entre 429€ et 429€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.