Coder un proxy applicatif

Nos gentils clients sont forcés de passer à travers des proxy pour éviter que nos firewalls ne deviennent de vraies passoires, voici quelques méthodes :

 en shell (nécessite Perl)

/opt/local/outils/etc/GET -p PROXY:PORT URL

 en shell (la vraie vie)

unset http_proxy
http_proxy=PROXY:PORT ; export http_proxy
lynx -dump URL

 en shell (nagios client)

$NAGIOS/libexec/check_http -H HOST -p port -u URI -y PROXY:PORT

 en php

<?
myfiles = "URL";
   
  $mysock = fsockopen("PROXY", PORT, &$errno, &$errstr);
  if( !$mysock )
  {
  echo "proxy not available !";
  fclose($resultfile);
  exit();
  } else {
  fputs($mysock,"GET $myfiles/ HTTP/1.0\n\n");
  while (!feof($mysock))
  {
  $zeile = fgets($mysock,1000);
  }
  }
?>

 php+xml (là je suis pas sûr de mon coup, faudrait tester que Sablotron sait effectivement utiliser fputs() au lieu de fopen()

<?

[legrosbloccidessus]

  $fxml =
"http://xml.fr.overture.com/d/search/p/lequipe/xml/fr/?Partner=lequipe_xml_fr_search_test&Keywords=dvd"; $fxsl = "URI.xsl";

  $id_xml = fopen($fxml, "r");
  $id_xsl = fputs($mysock,"GET $fxsl/ HTTP/1.0\n\n");

  $xml = fread($id_xml, 50000);
  $xsl = fread($id_xsl, filesize ($fxsl));

  $param = array("valeur"=>"XML");
  $arg = array('/_xml' => $xml, '/_xsl' => $xsl);

  $analyseur_xslt = xslt_create();
  $resultat = xslt_process($analyseur_xslt,
  'arg:/_xml', 'arg:/_xsl',
  NULL, $arg, $param);
  if ($resultat != false)
  {
  print($resultat);
   
  }
  else
  {
  echo "<u>Une erreur est suvenue :</u>"
  . "Code : " . xslt_errno($analyseur_xslt)
  . "Message : " . xslt_error($analyseur_xslt);
  }
  xslt_free($analyseur_xslt);
?>

 en jsp

* specifie dans la jvm directement

  prop.put("proxySet","true");
  prop.put("http.proxyHost","PROXY");
  prop.put("http.proxyPort","PORT");

* directement dans les pages, exemple de code

<java type=import>
java.net.*
java.io.*
java.util.*
</java>
<java>
// overture xml
Properties prop = System.getProperties();
//prop.put("proxySet","true");
//prop.put("http.proxyHost","PROXY");
//prop.put("http.proxyPort","PORT");

out.println(prop.getProperty("proxySet"));
   
URL overturexml = new URL("http://URL/");
HttpURLConnection oxmlc =
(HttpURLConnection)overturexml.openConnection();
out.println(oxmlc.getRequestMethod());
//oxmlc.getContent();
out.println(oxmlc.getResponseCode());
out.println(oxmlc.usingProxy());

StringBuffer buffer;
buffer = new StringBuffer();
InputStream input = oxmlc.getInputStream();
String line;
BufferedReader dataInput = new BufferedReader(new
InputStreamReader(input));
  while ((line = dataInput.readLine()) != null) {
  buffer.append(line);
  buffer.append('\n');
  }
  out.println(buffer);

Un message, un commentaire ?

Forum sur abonnement

Pour participer à ce forum, vous devez vous enregistrer au préalable. Merci d’indiquer ci-dessous l’identifiant personnel qui vous a été fourni. Si vous n’êtes pas enregistré, vous devez vous inscrire.

Connexions’inscriremot de passe oublié ?