Coder un proxy applicatif
, popularité : 1%
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);