proxyjudge.org AnonyLevel : 1 mit dem squid proxy

April 30th, 2006 by admin

damit der squid proxy server vom proxyjudge das anonymitäts level 1 gekommt, muß squid sich wie ein normaler browser/client verhalten.

als erstes müssen die http header gefiltert werden die verraten das ein proxy server die seite angefordert hat. das geht am besten mit webmin (server->sqid proxy server->header access control),natürlich aber auch über die squid.conf. die “header access control” sollten wie folgt konfiguriert werden damit alle relevanten header gelöscht werden.

WICHTIG: es sollten nicht referer,accept oder connection gefiltert werden. da das AnonyLevel sonnst wieder steigt.

HTTP header Action For ACLs
via Deny all
X-Forwarded-For Deny all
Forwarded-For Deny all
pragma Deny all
Cache-Control Deny all
Keep-Alive Deny all

jetzt gibt proxyjudge bestimmt schon AnonyLevel 2.

der letzte schritt zu level 1 geht über euren reverse dns eintrag. nach meinen test darf dort keine domain eingetragen sein. bei einer reverse anfrage sollte also nur eure ip zurüchgeliefert werden.
die einstellung kann jedoch oft nicht vom server direkt vorgenommen werden.

daher einfach mal im ‘admin bereich’ von eurem provider nachschauen ob er die änderung des Reverse-Eintrag für eure IP zuläßt.

wenn alles funktioniert hat sollte proxyjudge.org so etwas ausspucken:

REMOTE_HOST - Comment - I have no idea because DNS lookup failure.

HTTP Env. Value - Comment - Like no proxy server.

AnonyLevel 1 - REMOTE_HOST that is IP addr. is precious

Posted in linux | No Comments »

squid konfigurieren mit authentifizierung

April 30th, 2006 by admin

hier und da findet man gute infos zur konfiguration mit einer user authentifizierung.

das problem bei mir war das ich das htpasswd tool nicht installiert hatte und auf die schnelle auch nicht im netz gefunden habe. problemlöser waren diese webseiten. dort kann man sich ein htpasswd string ,der aus username:passwort besteht, generieren lassen.

dann den/die string/strings mit enter getrennt in die passwortdatei die z.B. das ncsa_auth module benötigt und fertig. nicht vergessen squid neu starten.

Posted in linux | 1 Comment »

php download funktion mit multipart und resume

April 30th, 2006 by admin

die funktion erlaubt downloadbeschleuniger(flashget, getright usw.) einzusetzen und den download zu resumen. zusätzlich kann nach abbruch oder fertigstellung des downloads eine funktion ausgeführt werden. diese könnte z.b. den erzeugten traffic abspeichern. wer mit der $chunksize und dem sleep(1) experimentiert kann die downloadgeschwindigkeit beliebig anpassen.

PHP:
  1. function output_file($file,$name)
  2. {
  3. //register_shutdown_function( 'function_name'  );//do something on download abort/finish
  4. if(!file_exists($file))
  5. die('file not exist!');
  6. $size = filesize($file);
  7. $name = rawurldecode($name);
  8.  
  9. if (ereg('Opera(/| )([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']))
  10. $UserBrowser = "Opera";
  11. elseif (ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']))
  12. $UserBrowser = "IE";
  13. else
  14. $UserBrowser = '';
  15. $mime_type = ($UserBrowser == 'IE' || $UserBrowser == 'Opera') ? 'application/octetstream' : 'application/octet-stream';/// important for download
  16. @ob_end_clean(); /// decrease cpu usage extreme
  17. header('Content-Type: ' . $mime_type);
  18. header('Content-Disposition: attachment; filename="'.$name.'"');
  19. header ('Expires: '.gmdate("D, d M Y H:i:s", mktime(date("H")+2, date("i"), date("s"), date("m"), date("d"), date("Y"))).' GMT');
  20. header ('Accept-Ranges: bytes');
  21. header("Cache-control: private");
  22. header ('Pragma: private');
  23. /////  multipart-download and resume-download
  24. if(isset($_SERVER['HTTP_RANGE']))
  25. {
  26. list($a, $range) = explode("=",$_SERVER['HTTP_RANGE']);
  27. str_replace($range, "-", $range);
  28. $size2 = $size-1;
  29. $new_length = $size-$range;
  30. header("HTTP/1.1 206 Partial Content");
  31. header("Content-Length: $new_length");
  32. header("Content-Range: bytes $range$size2/$size");
  33. }
  34. else
  35. {
  36. $size2=$size-1;
  37. header("Content-Length: ".$size);
  38. }
  39. $chunksize = 1*(1024*1024);
  40. $this->bytes_send = 0;
  41. if ($file = fopen($file, 'r'))
  42. {
  43. if(isset($_SERVER['HTTP_RANGE']))
  44. fseek($file, $range);
  45. while(!feof($file) and (connection_status()==0))
  46. {
  47. $buffer = fread($file, $chunksize);
  48. print($buffer);//echo($buffer); // is also possible
  49. $this->bytes_send += strlen($buffer);
  50. //sleep(1);//// decrease download speed
  51. }
  52. fclose($file);
  53. }
  54. else
  55. die('error can not open file');
  56. if(isset($new_length))
  57. $size = $new_length;
  58. die();
  59. }

Posted in php | 12 Comments »

php.net nicht erreichbar ?

April 19th, 2006 by admin

muß mit schrecken feststellen das php.net nicht mehr erreichbar ist. seit ca 10 uhr ist der server pingbar

PHP:
  1. ping php.net
  2.  
  3. Antwort von 66.163.161.117: Bytes=32 Zeit=399ms TTL=52
  4. Antwort von 66.163.161.117: Bytes=32 Zeit=537ms TTL=52
  5. Antwort von 66.163.161.117: Bytes=32 Zeit=437ms TTL=52
  6. Antwort von 66.163.161.117: Bytes=32 Zeit=497ms TTL=52

aber der webserver scheint den geist aufgegeben zu haben.

EDIT: 20min später und der webserver läuft auch wieder :-) gott sei dank.

Posted in php | No Comments »

farbe im farbkreis über den farbwinkel bestimmen

April 10th, 2006 by admin

wer zu einem bestimmten winkel im farbkreis die dazu passende farbe haben möchte kann folgende funktion verwenden. einfach den winkel eingeben und die funktion generiert die dazugehörigen farbwerte im rgb format.

PHP:
  1. function get_color_to_angle($angle)
  2. {
  3. $r=0;$g=0;$b=0;
  4. if($angle>= 0 && $angle <60)
  5. {
  6. $r = 255;$b = 0;
  7. $g = ($angle/60)*255;
  8. }
  9. elseif($angle>= 60 && $angle <120)
  10. {
  11. $g = 255;$b = 0;
  12. $r = ((($angle/60)-2)*255)*-1;
  13. }
  14. elseif($angle>= 120 && $angle <180)
  15. {
  16. $g = 255;$r = 0;
  17. $b = ((($angle/60)-2)*255);
  18. }
  19. elseif($angle>= 180 && $angle <240)
  20. {
  21. $b = 255;$r = 0;
  22. $g = ((($angle/60)-4)*255)*-1;
  23. }
  24. elseif($angle>= 240 && $angle <300)
  25. {
  26. $b = 255;$g = 0;
  27. $r = ((($angle/60)-4)*255);
  28. }
  29. elseif($angle>= 300 && $angle <= 360)
  30. {
  31. $angle-=360;//// wichtig
  32. $r = 255;$g = 0;
  33. $b = (($angle/60)*255)*-1;
  34. }
  35. return (array(ceil($r),ceil($g),ceil($b)));
  36. }

Posted in php | No Comments »