okgofun
ก๊วนเสียว
พลังน้ำใจ: 1
ออฟไลน์
กระทู้: 396
|
 |
« เมื่อ: 09 สิงหาคม 2007, 19:28:24 » |
|
พวกเว็บนอกนี่เขาเขียนระบบยังไงเหรอครับ ถึงรู้ว่าไม่ใช่ human ตอนเข้าถึง page นั้นๆของเว็บเขา ผมลองหัดๆเขียน php พวกฟังก์ชั่น file_get_contents จากเว็บต่างๆ ส่วนใหญ่พวกเว็บ article แล้วก็มักจะเจอข้อความแสดงประมาณว่า เราไม่ใช่ human แบบว่ามีการเข้าถึงเพจของเขาด้วยการดึง ไม่พบ cookie และอื่นๆ เขาเช็คได้ยังไงหละ เก่งจัง ก็เรารันใน localhost แล้วค่อยดึงไฟล์นั้นนี่ ไม่ได้ใช้ software ซะหน่อย เอ่อ อยากรู้ว่ามีวิธีการปลอม header หรือเขียนคำสั่งให้เพจที่เรารันมันเป็นธรรมชาติเหมือนการเข้าเพจนั้นๆโดยตรงใหมครับ 
|
|
|
|
|
บันทึกการเข้า
|
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน
|
|
|
kahn
Verified Seller
สมุนแก๊งเสียว
พลังน้ำใจ: 59
ออฟไลน์
กระทู้: 514
|
 |
« ตอบ #1 เมื่อ: 09 สิงหาคม 2007, 19:32:15 » |
|
พวกเว็บนอกนี่เขาเขียนระบบยังไงเหรอครับ ถึงรู้ว่าไม่ใช่ human ตอนเข้าถึง page นั้นๆของเว็บเขา ผมลองหัดๆเขียน php พวกฟังก์ชั่น file_get_contents จากเว็บต่างๆ ส่วนใหญ่พวกเว็บ article แล้วก็มักจะเจอข้อความแสดงประมาณว่า เราไม่ใช่ human แบบว่ามีการเข้าถึงเพจของเขาด้วยการดึง ไม่พบ cookie และอื่นๆ เขาเช็คได้ยังไงหละ เก่งจัง ก็เรารันใน localhost แล้วค่อยดึงไฟล์นั้นนี่ ไม่ได้ใช้ software ซะหน่อย เอ่อ อยากรู้ว่ามีวิธีการปลอม header หรือเขียนคำสั่งให้เพจที่เรารันมันเป็นธรรมชาติเหมือนการเข้าเพจนั้นๆโดยตรงใหมครับ  ส่วนใหญ่จะใช้วิธีเช็ค user agent ครับ แต่สามารถปลอมได้ ลองศึกษาฟังชั่น curl ดูครับ
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
gAAp
Newbie
พลังน้ำใจ: 0
ออฟไลน์
กระทู้: 82
|
 |
« ตอบ #2 เมื่อ: 09 สิงหาคม 2007, 19:41:24 » |
|
ตรวจจับจากความเร็วในการดึงข้อมูล ต่อ IP ครับ จากการสังเกตดู ถ้าค่อยๆ ดึง ค่อย ๆ ดูด จะไม่มีปัญหา แต่ถ้าดูดเร็ว ๆ หล่ะเป็นเรื่อง 
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
ColdMoney
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 200
ออฟไลน์
กระทู้: 12,548
|
 |
« ตอบ #3 เมื่อ: 09 สิงหาคม 2007, 23:03:16 » |
|
เยอะแยะครับ วิธีเช็คอ่ะ เช่น 1 cookies ถ้าไม่มีก็คือ ดึงโดยตรง 2 user agent ถ้าไม่มี หรือไม่มารตฐานก็คือ ดึงโดยตรง 3 ความถี่ของการดึง วิธีแก้ ก็ใช้ curl ครับ หรือไม่ก็ใช้ vb ก็ได้เปิดเว็บทีล่ะหน้าแล้ว save มันก็เหมือนกะเราใช้ ie เปิดอ่ะ เนียนมากๆ มีครบทุกอย่างที่ เค้าต้องการ 
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
okgofun
ก๊วนเสียว
พลังน้ำใจ: 1
ออฟไลน์
กระทู้: 396
|
 |
« ตอบ #4 เมื่อ: 10 สิงหาคม 2007, 04:00:43 » |
|
ขอบคุณครับ เท่าที่สังเกตุต่อมา รู้สึกว่าเขาจะเน้นที่ความถี่ในการเข้าถึงข้อมูล คงจะตรวจสอบจาก ip หรือไม่ก็ cookie ของเราแน่ๆเลย เอ? จะมีวิธีเขียนให้ header เปลี่ยน ip หรือเปลี่ยนเวลาได้บ้างใหมนะ อิอิ ลุยต่อ
|
|
|
|
|
บันทึกการเข้า
|
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน
|
|
|
pongino
ก๊วนเสียว
พลังน้ำใจ: 4
ออฟไลน์
กระทู้: 438
|
 |
« ตอบ #5 เมื่อ: 10 สิงหาคม 2007, 04:20:35 » |
|
ถ้าเป็น PHP มันมีคำสั่ง check ว่าเป็น browser อะไรหรือเป็น bot อะไรนะ รู้สึกว่า $_SERVER['HTTP_USER_AGENT'] มั้ง มันจะดึงค่าว่าเป็น browser อะไร หรือ Bot อะไรกับลังอ่าน page เราอยู่ อันนี้คือพื้นๆที่สุดแล้ว
ถ้าอยากรู้ว่าใช้ file_get_content หรือ cURL แล้วมันขึ้นว่าอะไร ก็ลองเขียนโปรแกรมดูนะครับ
แต่ระบบใหญ่ๆ อาจจะมี check พฤติกรรมที่ซับซ้อนกว่านี้
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
tony
เกี๊ยวหวาน
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 6
ออฟไลน์
กระทู้: 4,063
|
 |
« ตอบ #6 เมื่อ: 10 สิงหาคม 2007, 05:17:47 » |
|
ต้องทำ human simulation ด้วยนะ เช่น ทำท่า โหลดรูปด้วย ไม่ใช่โหลดแต่ html  แล้วก็ เว้นระยะ ในการ โหลด หน้าถัดไป : 
|
|
|
|
|
บันทึกการเข้า
|
ไม่ค่อยว่างมาดูเท่าไร แต่หัวใจยังกิ๊ดตึ๋ง
|
|
|
kahn
Verified Seller
สมุนแก๊งเสียว
พลังน้ำใจ: 59
ออฟไลน์
กระทู้: 514
|
 |
« ตอบ #7 เมื่อ: 10 สิงหาคม 2007, 07:20:49 » |
|
ถ้าหมายถึงเวบ ezine article ลำบากครับ ผมเสีย ip ไป 4 ตัวแล้ว โดนแบนหมด ทั้งปลอม user agent ทั้งใส่ proxy ทั้งกำหนดความถี่การเข้าถึงแบบหน่วงเวลา พยายามให้เหมือนมนุษย์มากที่สุด ยังโดน เค้าเช็คความถี่น่ะครับ 
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
myong1
สมุนแก๊งเสียว
พลังน้ำใจ: 33
ออฟไลน์
กระทู้: 569
|
 |
« ตอบ #8 เมื่อ: 10 สิงหาคม 2007, 08:00:09 » |
|
ezine เท่าที่ผมลองเอง ผมเคยดึงหลายพันหน้าใน 1 วันก็ไม่เห็นจะโดนแบนนะครับ แต่ผมใช้โปแกรม Desktop ของผมเองนะครับ แล้วตัวโปรแกรมก็เหมือนของ php คือเป็นตัวดึงข้อมูลอย่างเดียว ไม่ได้จำลองเป็น browser ส่วนที่ว่า ezine เช็คยังไง ผมว่าเขาไม่ได้เช็คจาก cookies แน่ ๆ เพราะหน้ามันเข้า direct ตรง ๆ ได้ แล้วไม่ได้มีการ submit อะไรทั้งสิ้น คือเข้าตรง ๆ แล้วดึงข้อมูลออกมาอย่างเดียว ถ้าให้ผมเดาก็น่าจะเป็น ความถึ่ในการดึงข้อมูลต่อ 1 ip เขาอาจจะกันไว้ว่าใน 1 ชม/1 ip เข้าเว็บเขาได้ไม่เกิน 1000 ครั้ง ถ้าเกินถือว่าใช้โปรแกรม อะไรประมาณนี้ครับ ก็ลองสังเกตุละกันว่า ทำยังไงบ้างถึงโดนบล็อค แต่ถ้าโดนแบน ip ซัก 2-3 วันก็น่าจะใช้ ip ตัวนั้นได้อีกครับ 
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
harmonic
Newbie
พลังน้ำใจ: 1
ออฟไลน์
กระทู้: 87
|
 |
« ตอบ #9 เมื่อ: 10 สิงหาคม 2007, 09:02:42 » |
|
นึกถึงสมัยเขียนโปรแกรมส่งเข้า pager ปลอม header กันอุตลุต ถ้าอยากรู้เรื่องนี้ให้กระจ่างแนะนำว่าหาหนังสือ HTTP และ Apache มาอ่าน 
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
ColdMoney
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 200
ออฟไลน์
กระทู้: 12,548
|
 |
« ตอบ #10 เมื่อ: 10 สิงหาคม 2007, 09:12:34 » |
|
ถ้าหมายถึงเวบ ezine article ลำบากครับ ผมเสีย ip ไป 4 ตัวแล้ว โดนแบนหมด ทั้งปลอม user agent ทั้งใส่ proxy ทั้งกำหนดความถี่การเข้าถึงแบบหน่วงเวลา พยายามให้เหมือนมนุษย์มากที่สุด ยังโดน เค้าเช็คความถี่น่ะครับ  ผมดึงมา 5 แสน articles ยังไม่เห็นโดนเลยอ่ะครับ ไปทำไงเนี่ยถึงโดน 
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 321
ออฟไลน์
กระทู้: 12,459
|
 |
« ตอบ #11 เมื่อ: 10 สิงหาคม 2007, 09:45:27 » |
|
แนะนำเลย ลำบากหน่อยแต่... สมัครโฮสฟรีนอกๆ อะแล้วเขียนดึงเลย โดนแบนช่างหัวมัน ผมเคยทำแล้วกะเว็บอื่น ผล.. โดนแบน ip แถมโดนโฮสฟรีขึ้นแบล็กลิส แหง่ล่ะ ขนาดใช้โฮสดูด ยังกินเวลาเป็นเกือบ หลายสิบชั่วโมง ดูดไป 2 วัน แล้วรีบเอาไฟล์ออก พอวันที่ 3 โดนซะ  อีเมล์ใหม่สมัครใหม่ : 
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
okgofun
ก๊วนเสียว
พลังน้ำใจ: 1
ออฟไลน์
กระทู้: 396
|
 |
« ตอบ #12 เมื่อ: 10 สิงหาคม 2007, 14:32:19 » |
|
ขอบคุณทุกๆคนมากครับ
ผมลองรันดูใน localhost หนะครับ พออัพขึ้น server แล้วรัน ยิ่งช้ากว่าใน localhost อีก
ที่สำคัญต้องมาปรับ max_execution_time ด้วย ผมเทสโดยการดึงข้อมูลครั้งละ 5 pages ของเว็บบทความครับ
เอ? แบบนี้ถ้าใน server ที่เราเช่า มันปรับ max_execution_time ไม่ได้ แล้วเราจะดึงบทความได้เหรอเนี่ย (กรณีต้องการดึงครั้งเดียวทีละมากๆเลย)
|
|
|
|
|
บันทึกการเข้า
|
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน
|
|
|
Tee++;
โปรแกรมเมอร์ จอหงวน
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 79
ออฟไลน์
กระทู้: 1,852
|
 |
« ตอบ #13 เมื่อ: 10 สิงหาคม 2007, 15:16:17 » |
|
แก้ปัญหาได้หลายอย่างมาก 1.ใช้ cURL ปลอม Header เข้าไป 2.ใช้ cURL ใส่ Proxy เป็นเกราะเข้าไป โดยวนสักหลายๆ ตัว 3.ใช้การ refresh แบบนับจำนวน Record ครบ 50 แล้ว รีเฟรชมาเริ่มกันที่ 51 ต่อ 4.ใช้ asleep หรือ sleep มาหน่วงเวลาไว้ โดยอาจจะใช้ร่วมกับ flush หรือ ob_implicit_flush()
จะเอาไป mix รวมกันก็ไม่ผิดกติกาแต่อย่างใด
ส่วน library ที่ใช้กับ cURL ได้ดีๆ มี 2 ตัว
1. snoopy ตัวนี้สุดยอดแต่ลงยาก เพราะต้องลง cURL แบบ ไม่ใช่ ext ของ php ไม่งั้นมันจะกลายเป็นการทำงานแบบ fsock แทน ทำให้ไม่สามารถดึงขอ้มูลแบบ https ได้
2. class.curl อันนี้ลองหาดูใน phpclasses.org เป็น library แต่ก็แค่การทำให้คำสั่งสั้นลง จริงๆ เป็นการใช้ความสามารถ cUrl ของ php เท่านั้นเอง เรียกว่า พอถูไถ
เรื่อง Execute Time Limit ให้ใส่คำสั่งนี้ไปบนหัว
@set_time_limit(0) หรือใช้คำสั่ง refresh แบบที่บอก
|
|
|
|
« แก้ไขครั้งสุดท้าย: 10 สิงหาคม 2007, 15:21:05 โดย Tee++; »
|
บันทึกการเข้า
|
|
|
|
amaudy
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 9
ออฟไลน์
กระทู้: 1,210
|
 |
« ตอบ #14 เมื่อ: 10 สิงหาคม 2007, 15:39:51 » |
|
เพราะเรื่องดูดๆเนี่ยแหละ ทำให้ผมกลับไปใช้ Perl/LWP รันบน VPS แทน
สะใจหลายเด้อ T-T
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
okgofun
ก๊วนเสียว
พลังน้ำใจ: 1
ออฟไลน์
กระทู้: 396
|
 |
« ตอบ #15 เมื่อ: 10 สิงหาคม 2007, 15:41:59 » |
|
แก้ปัญหาได้หลายอย่างมาก 1.ใช้ cURL ปลอม Header เข้าไป 2.ใช้ cURL ใส่ Proxy เป็นเกราะเข้าไป โดยวนสักหลายๆ ตัว 3.ใช้การ refresh แบบนับจำนวน Record ครบ 50 แล้ว รีเฟรชมาเริ่มกันที่ 51 ต่อ 4.ใช้ asleep หรือ sleep มาหน่วงเวลาไว้ โดยอาจจะใช้ร่วมกับ flush หรือ ob_implicit_flush()
จะเอาไป mix รวมกันก็ไม่ผิดกติกาแต่อย่างใด
ส่วน library ที่ใช้กับ cURL ได้ดีๆ มี 2 ตัว
1. snoopy ตัวนี้สุดยอดแต่ลงยาก เพราะต้องลง cURL แบบ ไม่ใช่ ext ของ php ไม่งั้นมันจะกลายเป็นการทำงานแบบ fsock แทน ทำให้ไม่สามารถดึงขอ้มูลแบบ https ได้
2. class.curl อันนี้ลองหาดูใน phpclasses.org เป็น library แต่ก็แค่การทำให้คำสั่งสั้นลง จริงๆ เป็นการใช้ความสามารถ cUrl ของ php เท่านั้นเอง เรียกว่า พอถูไถ
เรื่อง Execute Time Limit ให้ใส่คำสั่งนี้ไปบนหัว
@set_time_limit(0) หรือใช้คำสั่ง refresh แบบที่บอก
สุดยอดเลยครับพี่ ขอบคุณครับ เดี๋ยวจะลองๆดูครับ ว่าแต่ผมลองหาใน phpmanual มันมีไม่ค่อยครบเลย บางทีก็ไม่ละเอียด แต่ก็ยังดีครับ ลองไปเรื่อยๆมั่วๆเสียเวลามากหน่อย แต่ก็สนุกดี 
|
|
|
|
|
บันทึกการเข้า
|
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน
|
|
|
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 321
ออฟไลน์
กระทู้: 12,459
|
 |
« ตอบ #16 เมื่อ: 10 สิงหาคม 2007, 18:05:08 » |
|
3.ใช้การ refresh แบบนับจำนวน Record ครบ 50 แล้ว รีเฟรชมาเริ่มกันที่ 51 ต่อ
ผมใช้ข้อนี้ รันทิ้งไว้เลย แต่สักพักก็หยุด อีกสิบนาทีค่อยมาต่อ อะไรแบบนั้น
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
okgofun
ก๊วนเสียว
พลังน้ำใจ: 1
ออฟไลน์
กระทู้: 396
|
 |
« ตอบ #17 เมื่อ: 10 สิงหาคม 2007, 19:17:57 » |
|
3.ใช้การ refresh แบบนับจำนวน Record ครบ 50 แล้ว รีเฟรชมาเริ่มกันที่ 51 ต่อ
ผมใช้ข้อนี้ รันทิ้งไว้เลย แต่สักพักก็หยุด อีกสิบนาทีค่อยมาต่อ อะไรแบบนั้น แจ๋วครับ เดี๋ยวผมลองมั่ง ลองๆคำสั่ง sleep ให้มัน delay ดูแล้วก็โอเคเลยครับ แต่ต้องอย่างต่ำสัก 15 วินาที แบบนี้ทำให้ต้องรอแย่เลย แต่ก็ยังดีกว่าไมได้  แหะๆ 
|
|
|
|
|
บันทึกการเข้า
|
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน
|
|
|
|