Sunday, September 21, 2008

การเขียน สคริป PHP เพื่อ Check Proxy



IP Address คือ เลขรหัสประจำตัวของเครื่องคอมพิวเตอร์เครื่องใดๆ ที่อยู่ใน Internet ซึ่งเปรียบเสมือนเบอร์โทรศัพท์ เลขทะเบียนของรถยนต์ หรือเหมือนเลขที่บ้าน ซึ่งจะใช้อ้างอิงในการติดต่อสื่อสารระหว่างเครื่องคอมพิวเตอร์ในเครือข่าย เมื่อจะติดต่อ หรือส่ง - รับข้อมูลกัน จะได้ระบุได้ถูกว่าต้องการติดต่อกับเครื่องที่มี IP อะไร (เปรียบเสมือนว่าถ้าจะคุยกับผม จะต้องโทรไปที่เบอร์ไหน หรือส่งจดหมายไปที่บ้านเลขที่อะไร) ดังนั้น เครื่องทุกเครื่องที่ต่อ Network ด้วยกัน จะต้องมี IP Address ที่ไม่ซ้ำกัน เพื่อจะได้ไม่สับสนเวลาติดต่อสื่อสารกัน


ในโลก internet การปลอมแปลง IP Address นั้นสามารถทำได้โดยการใช้ Proxy เพื่อปิดบัง IP ที่แท้จริง


ประเภทของ Proxy มีดังต่อไปนี้


Transparent Proxy
Anonymous
Distorting
High Anonymous (Elite)


โดยทั่วไปเรามักจะใช้ Anonymous, Distorting และ High Anonymous (หรือ Elite) ซึ่งแบบท้ายสุดจะเป็นแบบที่ปลอดภัยมากที่สุด เพราะจะไม่ส่งค่า เฮดเดอร์ HTTP_VIA และ HTTP_FORWARED_FOR ไปให้ปลายทาง


เรามักจะไม่นิยมใช้ Transparent Proxy เนื่องจาก Proxy ตัวนี้จะส่ง IP ของเครื่องเราผ่านเฮดเดอร์ที่ชื่อ HTTP_FORWARED_FOR และจะส่งเฮด HTTP_VIA ไปยัง server ปลายทาง


การตรวจสอบ Proxy สามารถเขียน code php เพื่อใช้ตรวจสอบได้ดังนี้


<?php


/**
* @ITEASY
* @copyright 2008
*/


$addr = $REMOTE_ADDR;
$fw = $HTTP_X_FORWARDED_FOR;
$via = $HTTP_VIA;
echo "Your IP = $addr <br>";
echo "IP FW to Proxy server = $fw <br>";
echo "Proxy Server = $via <br>";


?>


หรือสามารถเขียนโดยใช้ฟังก์ชัน getenv ในการดึงเอาค่าจาก Predefined Variable


<?php


/**
* @sniffer
* @copyright 2008
*/


$addr = getenv(REMOTE_ADDR);
$fw = getenv(HTTP_X_FORWARDED_FOR);
$via = getenv(HTTP_VIA);
echo "Your IP = $addr <br>";
echo "IP FW to Proxy server = $fw <br>";
echo "Proxy Server = $via <br>";


?>

No comments: