Basic Socket Programming ตอนที่ 1 (php+wireshark)

 - by NAzT

วันนี้มาเขียนโปรแกรมโดยใช้ Socket แบบง่ายๆกัน โดยใช้ fsockopen ของ ครับ

เราจะทำตัวเป็น Browser กันนะครับ โดย Request ข้อมูลกับ Server เองครับ แต่วันนี้จะส่ง Request อย่างเดียวครับ  แต่ยังไม่ส่งค่าไปด้วย (เช่นค่าจาก Form)

อ้อ วันนี้เราจะใช้ ร่วมกับ PHP นะครับ  ใครจะใช้ Proxomitron ก็ไม่ว่ากันครับ 

โจทย์วันนี้ของเราคือ ถ้าเราใช้ Browser จะยี่ห้ออะไรก็แล้วแต่ครับ เปิดไป

ที่ http://bbs..com/webboard/checksum/index7.php?imgnum=027511150aa7bbd1171c1ae4e1d6e80fcc1681f981fbb2ee1c915983a583d838

Browser ของเราก็จะไป Request ข้อมูลกับทาง Server แล้ว Server ก็จัดให้ตามคำขอครับผม ดูได้จากรูปได้เลยครับ  ซึ่ง No.16 ก็คือ Request ของเรานั่นเอง ส่วน No.26 ก็จะเป็นคำตอบของ Server จะเห็นว่า Server ส่งข้อมูลกลับมาซึ่งเป็นเป็นข้อมูลชนิด PNG ครับผม (ดูจากรูปครับผม)

basic-socket-1-wireshark

basic-socket-1-wireshark

แต่ส่วนข้างบนนั้น  Browser ของเราเป็นคนไป Request  มาให้เรา แต่วันนี้เราจะลองทำตัวเป็น Browser ครับคือเขียนโปรแกรมเปิด Socket ไป Request ข้อมูลจากทาง Server เองเลย

แต่จะทำยังไงล่ะ ?

เรามาดูกันก่อนครับว่า Browser ของเรามันทำอะไรบ้างตอนส่ง GET ไปขอข้อมูลจากทาง Server

ดูตรงนี้เลยครับ (ตามภาพ)

basic-socket-wireshark-2

basic-socket-wireshark-2

เราก็จะเห็น Header มากมายก่ายกองที่ Browser ของเราส่งไปให้ Server เราก็ไม่ต้องคิดมาก เราจะทำตัวเป็น Browser เราก็ส่งข้อมูลไปเหมือนกับที่มันส่งไปนั่นแหละ

แบบนี้…

 

Simple Socket - Pre - Code 1

Simple Socket - Pre - Code 1

 

 

Code ไปไงมายังไง ขาดหายไปมั่ง อย่าเพิ่งตกใจครับ เดี๋ยวรอดู Version เต็มเลย

อธิบาย Code ส่วนนี้ก็คือ เราจะไป GET ข้อมูลของไฟล์  /webboard/checksum/index7.php ครับ โดยเราจะเป็น Browser ยี่ห้อ Blah Blah Blah ครับ

 

Code เต็มๆ อยู่ด้านล่างครับ

Simple-Socket-Full-Code

Simple-Socket-Full-Code

 

อธิบายสั้นๆ ก็คือเมื่อเราเปิด Socket แล้วเราก็สั่ง fwrite  (เขียนข้อมูลลงไปใน Socket แล้วมันก็จะไปถึง Server) หลังจากนั้นเราก็มาวนลูปดูว่า Server ส่งอะไรกลับมาให้เราบ้าง

 

simple socket Answer from server  -1

แล้วกลับไปลองใช้ Wireshark Sniff packets อีกครั้ง สังเกตว่าเราจะมี User Agent เป็น Blah Blah Blah คร้าบผม ^^simple socket User Agent Blah Blah

 

simple socket User Agent Blah Blah

simple socket User Agent Blah Blah

 

 

เป็นไงบ้างครับ ไม่ยากเลยใช่ไหมครับ เดี๋ยววันหลังเรามาส่งข้อมูลไปให้ Server กันครับ (อย่างเช่นการตอบกระทู้) 

 

แล้วเจอกันคร้าบ

Related Blogs

เรื่องที่เกี่ยวข้อง