begin process at 2010 03 22 00:46:20
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > MIGAPROXY : PROXY EN PHP COMPILABLE AVEC BAMCOMPILE

MIGAPROXY : PROXY EN PHP COMPILABLE AVEC BAMCOMPILE


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

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

Auteur : qbasic

Ecrire un message privé
Site perso
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


 Sources de la même categorie

SONDAGE - VOTE - POLL (AVEC MYSQL) par hornet_bzz
Source avec Zip Source avec une capture CRAYONPRO EST UN CMS SIMPLE EN PHP ET MYSQL - INSTALLATION E... par crayoncie
Source avec Zip Source avec une capture LISTENGEN GÉNÉRATEUR DE FICHIER PLAYLIST par AGG
Source avec Zip IP CALCULATOR par X_Cli
Source avec Zip Source avec une capture WHOIS DOMAIN CLASS : LOOKUP & AVAIBILITY par aKheNathOn

 Sources en rapport avec celle ci

Source avec Zip SIMULBAL: SERVEUR POUR BALANCES ÉLECTRONIQUES DE LABORATOIRE... par laservert
Source avec Zip Source avec une capture ADMINISTRATION DE SERVEURS URBAN TERROR A DISTANCE par XRaph
FONCTION GET EN PHP : RECUPERER UNE PAGE SUR UN SITE DISTANT par nax333
SUPERVISION DE PORTS par fifi774
STATUS SERVEUR EN PHP par naruto uzumaki

Commentaires et avis

Commentaire de coucou747 le 02/09/2008 12:39:07

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

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 ?

Commentaire de coucou747 le 02/09/2008 13:47:49

oui

Commentaire de djmmix le 02/09/2008 19:35:00

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

Commentaire de coucou747 le 02/09/2008 19:47:39

djmmix, pourquoi tu dis ca ?

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

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 ?

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

Commentaire de GillesWebmaster le 08/09/2008 16:48:48 10/10

brillant!

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

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...)

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

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 ;-)

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

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 ;)

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 ?

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

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,451 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales