ฉันสร้าง Python Bot เพื่อเข้าสู่ Captive Portal โดยอัตโนมัติได้อย่างไร

การสอน Python ทีละขั้นตอนเพื่อสร้างบอทล็อกอิน

ปัจจุบันอินเทอร์เน็ตไม่ใช่สิทธิพิเศษ แต่เป็นสิ่งจำเป็น ไม่ว่าเราจะไปที่ใดก็ตามเราต้องมีการเชื่อมต่ออินเทอร์เน็ตอย่างสม่ำเสมอโดยใช้ทั้ง Wi-Fi หรือเครือข่ายที่ใช้ข้อมูลมือถือ

ลองนึกภาพเราเข้าร่วมมหาวิทยาลัยหรือองค์กรใหม่ที่ให้บริการอินเทอร์เน็ตผ่าน Wi-Fi องค์กรอาจใช้เพจล็อกอินทั่วไปสำหรับการพิสูจน์ตัวตนผู้ใช้ที่เรียกว่าCaptive Portal (หรือที่เรียกว่าWalled Garden )

Captive Portal ถูกใช้ด้วยเหตุผลหลายประการ

  • มหาวิทยาลัยและองค์กรต่างๆใช้เพื่อ จำกัด จำนวนอุปกรณ์ที่เชื่อมต่อกับเครือข่าย Wi-Fi จากบัญชีเดียว / คน
  • มีการนำไปใช้เพื่อให้การเข้าถึงบริการที่ต้องมีการตรวจสอบสิทธิ์การชำระเงินหรือข้อมูลรับรองที่ถูกต้องอื่น ๆ ที่ทั้งผู้ให้บริการและผู้ใช้ตกลงที่จะปฏิบัติตาม

มีเหตุผลและประโยชน์หลายประการในการใช้แคปทีฟพอร์ทัล แต่นั่นไม่ใช่สิ่งที่โพสต์นี้เกี่ยวกับ

บริษัท ของฉันได้ติดตั้งพอร์ทัลแบบแคปทีฟที่ผู้ใช้จำเป็นต้องลงชื่อเข้าใช้เพื่อให้สามารถเข้าถึงอินเทอร์เน็ตได้ ทันทีหลังจากที่ฉันเชื่อมต่อกับเครือข่ายไร้สายเบราว์เซอร์ของฉันใช้เพื่อเปิดหน้าแคปทีฟพอร์ทัลและฉันจำเป็นต้องป้อนชื่อผู้ใช้และรหัสผ่านหลังจากนั้นฉันจึงสามารถเข้าถึงอินเทอร์เน็ตได้ แต่เกิดปัญหาขึ้น

แม้ว่าการใช้พอร์ทัล Captive จะดีสำหรับการป้องกันการเข้าถึงอินเทอร์เน็ตโดยไม่ได้รับอนุญาตการระบุปริมาณการใช้งานและการจัดการผู้ใช้ แต่ก็มีการควบคุมการเชื่อมต่อกับอุปกรณ์แต่ละเครื่องเพื่อให้แน่ใจว่าผู้ใช้ทุกคนสามารถเข้าถึงได้อย่างเพียงพอ พอร์ทัลเชลยสามารถ

  • ควบคุมจำนวนขั้วต่อผู้ใช้
  • ควบคุมการใช้แบนด์วิดท์และ / หรือความเร็วในการดาวน์โหลดต่อเซสชัน
  • จำกัด ประเภทของการเข้าชมที่อนุญาตและแม้กระทั่งระบุระยะหมดเวลาเซสชัน

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

ในฐานะนักพัฒนาซอฟต์แวร์ที่ต้องการการเชื่อมต่ออินเทอร์เน็ตบนระบบของฉันตลอดเวลาฉันต้องป้อนชื่อผู้ใช้และรหัสผ่านครั้งแล้วครั้งเล่าซึ่งทำให้ยุ่งยากมาก

จะเกิดอะไรขึ้นถ้าหลังจากออกจากระบบแล้วฉันสามารถล็อกอินเข้าสู่แคปทีฟพอร์ทัลได้เพียงคลิกปุ่ม / ไอคอนบนระบบของฉัน?

น่าจะทำได้! ไม่จำเป็นต้องป้อนชื่อผู้ใช้และรหัสผ่านซึ่งในกรณีส่วนใหญ่ควรมีความยาว 8 ตัวอักษรและควรมีอักษรตัวใหญ่อย่างน้อยหนึ่งตัว blah blah blah มาดูกันว่าเราทำได้อย่างไร

การนำไปใช้

แม้ว่าคุณจะเป็นมือใหม่ในการเขียนโปรแกรม แต่ก็น่าจะทำได้ไม่ยาก ฉันได้เข้ารหัสสิ่งนี้ในภาษาโปรแกรม Python สามารถดาวน์โหลด Python ได้ที่นี่และเราต้องการ Selenium ซึ่งสามารถดาวน์โหลดได้ที่นี่ คุณยังสามารถpip install selenium(แนะนำ)

ตอนนี้เรามาดูโค้ดกัน

หลังจากนำเข้าไลบรารีที่จำเป็นเราจำเป็นต้องระบุตัวแปรต่อไปนี้ภายในโค้ด

ให้ฉันอธิบายตอนนี้

  • ลิงค์เว็บไซต์ไม่ใช่อะไรนอกจากลิงค์เพจล็อกอินหรือลิงค์แคปทีฟพอร์ทัลที่ผู้ใช้จะพิสูจน์ตัวตน
  • คุณชื่อและรหัสผ่านคือสิ่งที่คุณป้อนเพื่อเข้าสู่ระบบ
  • element_for_username, element_for_password, element_for_submitคือชื่อขององค์ประกอบในโค้ด HTML ของหน้าล็อกอิน

ให้ฉันแสดงวิธีค้นหาสิ่งเหล่านี้

ดังรูปด้านบน

  • เปิดตรวจสอบองค์ประกอบขึ้นอยู่กับเบราว์เซอร์ของคุณ
  • ค้นหาองค์ประกอบ HTML และคัดลอกชื่อของแท็กใส่ (ในตัวอย่างข้างต้นของuser_name )
  • ทำเช่นเดียวกันเพื่อค้นหาองค์ประกอบ HTML สำหรับรหัสผ่านและปุ่มส่งด้วย
  • สตริงเหล่านี้จะเป็นค่าสำหรับelement_for_username, element_for_password, element_for_submit ของคุณ

งานส่วนใหญ่เสร็จแล้ว!

หมายเหตุ:ฉันทำงานบน macOS ดังนั้นฉันจะใช้บอทสำหรับ Safari สำหรับ Chrome และอื่น ๆ ให้ใช้ Chrome ผ่าน chromedriver

คัดลอกรหัสนี้พร้อมกับรหัสที่เหลือและบันทึกเป็นไฟล์ Python (ไฟล์. py) เรียกใช้ไฟล์โดยใช้python script.py. คุณจะเห็นเบราว์เซอร์เปิดหน้าเข้าสู่ระบบโดยอัตโนมัติและป้อนรายละเอียดและส่ง คุณไม่จำเป็นต้องพิมพ์ชื่อผู้ใช้และรหัสผ่านอีกต่อไป ไม่เท่เหรอ?

หมายเหตุ:โค้ดที่สมบูรณ์มีอยู่ใน GitHub

การใช้ Automator ใน macOS เพื่อสร้างแอปพลิเคชัน (ทางเลือก)

ใน macOS คุณสามารถสร้างแอพพลิเคชั่นที่สามารถทำตามชุดเวิร์กโฟลว์เฉพาะสำหรับงานใด ๆ ที่ทำซ้ำ ๆ

ในส่วนนี้ฉันจะอธิบายวิธีสร้างสคริปต์ Python ด้านบนให้เป็นแอป Automator สิ่งนี้จะช่วยให้ผู้ใช้ล็อกอินเข้าสู่แคปทีฟพอร์ทัลและเพียงคลิกที่ไฟล์แอพ Automator

ตอนนี้เรามาดูขั้นตอนในการใช้งานสิ่งนี้:

ขั้นตอนที่ 1: เปิดอัตโนมัติ สร้างบริการใหม่หรือไฟล์ & g t; ใหม่> S ervice

ขั้นตอนที่ 2: เพิ่ม“ Run Shell Script ” การกระทำ, การตั้งค่ากะลา:การ/ bin / ทุบตีและการป้อนข้อมูลผ่าน:เพื่อเป็นข้อโต้แย้ง

ขั้นตอนที่ 3: เพิ่มรหัส bash ตามด้านล่าง บันทึกไฟล์บนเดสก์ท็อป

ขั้นตอนที่ 4: คลิกไฟล์และVoilà!

การค้นหาวิธีแก้ปัญหาง่ายๆเพียงพิมพ์ข้อมูลเช่นข้อมูลรับรองการเข้าสู่ระบบซ้ำ ๆ สามารถทำได้อย่างง่ายดาย เมื่อคุณรู้ว่าคำชี้แจงปัญหาคืออะไรการค้นหาวิธีแก้ปัญหาก็ง่ายขึ้น ฉันหวังว่าโพสต์นี้จะช่วยให้คุณทราบว่า Selenium และ Python ทำงานอย่างไรและการสร้างบอท Python นั้นง่ายเพียงใด