ข้ามไปที่เนื้อหาหลัก

ทำ NanoStation M5 ให้ auto login hotspot (WISP Mode)

      สืบเนื่องจากเนตบ้านพัก จำเป็นจะต้อง login เพื่อเข้าใช้งาน แล้วถ้า login นาน ๆ แล้วไม่ใช้งาน มันก็จะ auto logout แล้วต้อง login ใหม่ ทำให้เกิดความเซ็ง เวลาจะ remote มาทำงานเครื่องที่บ้าน แล้วโดนตัดเนต ไอ้เจ้า NanoStation M5 ก็ไม่มีหน้าจอ Interface ให้กรอก username & password อย่าง WISP mode เสียนี่

     มาวันนี้มีเหมือนจะมีเวลาว่างนิดหน่อย (จริง ๆ ไม่ว่าง แต่ฟุ้งซ่านอยู่) ก็เลยไม่ง้อ WISP Mode หาทางทำให้เจ้า M5 มัน autologin เองซะเลย

ถามอากู๋ไปสัก 5 นาที ก็เจอเพจของ WirelessMove มี Script ให้ลองใช้ ก็จัดเลยแล้วกัน

แต่ก่อนอื่นต้องดูก่อนว่าหน้า Login มันอยู่หน้าไหน ด้วย Wireshark ได้ตามภาพ


รู้ URL แล้วก็ ยัดใส่ Script ได้เลย




ป้องกันการ auto logout ด้วยการใส่ Schedule ไว้ใน crontab (ตอนแรกจะเขียน script crond เอง แต่ไม่เคยใช้จริงจัง อ่านแล้วงง หาไปหามาไปเจอว่า M5 มี plugin ให้ใช้แล้ว...............สบายยยยยย

run ตามนี้ เป็นอันจบ ความหมายคือสั่งให้ auto login ทุก ๆ 10 นาที

คำสั่ง crontab ที่ใช้คือ
*/10  *    *    *    *    wget --output-document=/dev/null "http://172.168.1.1/CheckValidUser.php?username=phnarong&password=xxxx"


ที่เหลือก็ลอง logout แล้วรอดูว่า 10 นาทีให้หลัง จะเล่นเนตได้โดยที่ไม่ต้อง login หรือเปล่า

โอกาสหน้าอาจให้เช็คก่อนว่ามีการ login อยู่หรือเปล่า ถ้าไม่ได้ login ค่อยทำการ login

-------------------------------------------------------------------------------------------------

กลับมาอย่างรวดเร็ว เพิ่มเติม script สำหรับ check ว่า เครื่องกำลัง login อยู่หรือเปล่า

แนวคิดของ algorithm ก็คือ ส่งคำสั่ง ping ออกไปยัง ip ปลายทางที่อยู่บน internet อาทิ 8.8.8.8 ถ้าเจอข้อความว่า 100% packet loss แสดงว่า ping ไม่เจอ ให้ลอง login ได้ 

วิธีการก็คือสร้าง script ชื่อ autologin.sh เพื่อทำการใส่เงื่อนไข ก่อนที่จะสั่ง auto login จากนั้นก็แก้ crontab ให้เรียกใช้ script นี้แทนการสั่ง autologin ข้างต้นโดยตรง
รายละเอียด ไฟล์ autologin.sh  ก็มีดังนี้

#!/bin/sh 
count=$(ping -c5 -w5 8.8.8.8 | grep "100% packet loss" | wc -l)
if [ "$count" -gt 0 ]; then
        wget --output-document=/dev/null "http://172.168.1.1/CheckValidUser.php?username=phnarong&password=xxxxx"
        echo "autologin start"
fi

จากนั้น ก็แก้ไขไฟล์ crontab ใหม่ ด้วยคำสั่ง

crontab -e

แล้วก็แก้บรรทัด crontab ดังนี้

*/10  *    *    *    *   /etc/persistent/etc/crontabs/autologin.sh

*หมายเหตุ  อย่าลืมตรวจสอบความถูกต้องของ path ของ autologin.sh ด้ว
                  
อย่าลืม save ด้วยการกดปุ่ม ESC แล้วกดปุ่ม :wq แล้วก็พิมพ์ คำสั่งว่า

save

ก็เป็นอันเสร็จพิธี

แถมท้าย ด้วย script check_autologin.sh สำหรับตรวจสอบว่า มันได้รัน script ให้เราจริงหรือเปล่า script มีดังนี้

#!/bin/sh
START=$(date +%s)
until [ $(ping -c5 -w5 8.8.8.8 | grep "100% packet loss" | wc -l) == 0 ]
do
CURRENT=$(date +%s)
        echo current time = $CURRENT
        sleep 1
done
STOP=$(date +%s)
echo execution time = $(($STOP-$START)) second(s)





ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

เทคนิคการสอบใบขับขี่รถยนต์ ท่าจอดรถเทียบฟุตบาทห่างไม่เกิน 25cm ด้วย "Sticker"

วันนี้พาพี่ที่บ้านไปสอบใบขับขี่รถยนต์ครั้งที่ 3 ซึ่งสอบตกท่าจอดรถเทียบฟุตบาท โดยคนขับรถเป็นแล้วจะรู้สึกว่าไม่เห็นจะยากตรงไหน แต่สำหรับคนที่เพิ่งหัดขับรถ ประกอบกับได้จับรถป้ายแดงที่เพิ่งถอยออกมาขับได้ ไม่ถึง 5 ชม. นั้นเป็นเรื่องที่ยากจะทำได้ ผมคนหนึ่งที่ได้ใบขับขี่มานาน แต่พอให้มาขับจอดเทียบฟุตบาทด้วยรถป้ายแดงใหม่เอี่ยมของคนอื่นแล้ว มีอันต้องจอดห่างทุกที ด้วยเวลาในการซ้อมขับที่เหลือไม่ถึง 3 ชม. ก่อนสอบจริง ทำให้ต้องคิดหาเทคนิควิธีต่าง ๆ ที่จะทำได้ใบขับขี่มา (เพราะเหนื่อยกับความพยายามสอบมา 2 ครั้งแล้ว) จนทำให้คิดเทคนิค "Sticker" นี้ขึ้นได้ โดยปกติแล้วถ้าขับรถจอดเทียบฟุตบาทแล้วพยายามมองกระจกข้างให้ล้อหลังชิดเส้นขอบพอดี ผลออกมาจะทำให้ล้อหน้าปีนฟุตบาท ไอ้ครั้นจะให้พี่ที่เพิ่งหัดขับรถมาได้ไม่ถึง 8 ชม. กะขนาดตัวรถให้ได้ (ซึ่งขนาดผมเองยังคงกะลำบาก) ภายในสิบห้านาทีนั้นโอกาสเป็นไปได้ยากมาก ด้วยการทดลองเทคนิคต่าง ๆ หลาย ๆ แบบ ที่พอจะนึกออกจากประสบการณ์และเวลาอันสั้นรวบรัด ก็ทำให้เกิดแนวคิดที่ว่า ทำอย่างไรให้สามารถมองล้อหน้าว่าติดเส้นขอบหรือเปล่า ได้เหมือนกับที่ใช้กระจก...

เขียนโปรแกรม Visual Studio 2008(.NETCF3.5) กับ Windows Mobile 6 ติดต่อกับ Database MSSQL Server 2008 โดยตรง (ไม่ได้ใช้ SQLCE)

รับ Requirement ให้เขียนโปรแกรมบน Windows Mobile 6 ติดต่อกับ Database MSSQL Server 2008 โดยตรง ตอนแรกก็ลองใช้ SQLCE แต่เท่าที่ดูมันไม่ได้เชื่อมต่อ กับ Database Server แต่มันใช้ Database ในเครื่อง Pocket PC แทน ซึ่งไม่ตรงกับ Requirement นัก เลยลองเขียนโปรแกรมเชื่อมต่อไปยัง SQL Server ตรง ๆ กับปรากฏว่า import System.data.SqlClient ไม่ได้ หาไปหามา พบว่า SqlClient มันอยู่ในไฟล์ System.Data ใน VS2008 ซึ่งถ้าใช้ .NETCF 3.5 มันไม่มีให้ใช้ ลองถามอากู๋ดูก็พบว่ามีคนเขียนแล้วใช้ได้ เลยสงสัยว่าใช้ได้ยังไง หมดไป 1 วันก็พบว่าเขา Add Reference file "System.data.SqlClient.dll" มาใช้กัน ซึ่งเป็นของ "VS2005" ถ้าเป็น VS2008 มันเอาไปรวมใน System.Data.dll แล้ว หมดสิทธิ์ใช้งานนะจ๊ะ ครั้นลองเอา System.data.dll ของ .NET framework ตัวเต็มมา Add ใส่แทนที่ ผลปรากฏว่าพังไม่เป็นท่าเลย หลังจากถอดใจแล้วผลอยหลับไปงีบ ตื่นมาก็อาศํยสิ่งศักดิ์สิทธิ์เสียหน่อย ท่องคาถาให้งานราบรื่น ปรากฏว่า "สิ้งศักดิ์สิทธิ์มีจริง ไม่เชื่ออย่าลบหลู่" ไปเจอ Link (ลิงก์พังแล้ว) นี้   ซึ่งม...

ทำสาย Console Port ของ Router Zyxel P660HW-T1 v2 จาก True ไว้ซ่อมตอน Update firmware แล้วเดี้ยง ขึ้น PWR LED Blink

(หากใครต้องการข้อมูลเนื้อ ๆ ไม่อยากอ่านนิยาย ก็เลือกอ่าน link หรือดูรูปเอานะครับ ^^') สืบเนื่องมาจากอาการ Router Zyxel P660HW-T1 v2 เกิดอาการ Restart เองบ่อย ๆ มาตั้งแต่ก่อนน้ำท่วม (กลางเดือน ก.ย. 54) ช่วงน้ำท่วมก็เลยได้ข่าวจากเว็บไซต์ ทรูออนไลน์ว่า สามารถแำ่ก้ปัญหาได้โดยการ update firmware แต่ต้องผ่านสาย LAN เท่านั้น ด้วยความอยากโชว์เหนือ และขี้เกียจไปคุ้ยสาย LAN ก็เลย update มันผ่าน Wireless ซะเลย 555 ผลคือ router เดี้ยงไฟ PWR LED กะพริบตลอดเวลา เศร้าคโรต ไม่น่าเลย T-T ลองหาวิธีแก้จากอากู่ดู ได้ความว่าสามารถส่งไปเคลมที่ Zyxel ได้ (ไม่รู้ว่ามีค่าใช้จ่ายหรือเปล่า) และอีกวิธีคือสามารถใช้ สาย Console Port update firmware เข้าไปใหม่ได้ แต่สาย Console ไม่มีขายต้องทำเอง อาศัย chipset Max3232 อ้างอิงตาม Link ข้างล่าง http://www.adslthailand.com/forum/viewtopic.php?f=21&t=85843 http://www.adslthailand.com/forum/viewtopic.php?f=21&t=64770&start=0 เห็นวงจรแล้วค่อนข้างเครียดทีเดียว เพราะความรู้อิเล็คทรอนิคส์ ก็มีแค่งู ๆ ปลา ๆ ปู ๆ ยิ่ง ๆ เมือตอนหัดเล่น ว. สมัย ม.6 เท...