เรียกใช้โปรแกรมถ้าเชื่อมต่อกับ wifi เฉพาะหรือไม่


20

เป็นไปได้หรือไม่ที่จะเริ่มโปรแกรมโดยอัตโนมัติเมื่อฉันเชื่อมต่อกับเราเตอร์ที่เฉพาะเจาะจงและหยุดมันเมื่อฉันตัดการเชื่อมต่อจากเราเตอร์นี้หรือไม่?

โดยทั่วไปฉันต้องการให้โปรแกรมทำงานในขณะที่ฉันกำลังทำงาน (ชั่วโมงที่ยืดหยุ่นดังนั้นฉันจึงไม่สามารถมีฟังก์ชั่นจับเวลาได้) แต่ไม่ใช่เมื่อฉันอยู่ที่บ้าน - หรือที่อื่น

ฉันกำลังทำงาน: Macbook air OS X เวอร์ชั่น 10.9.4


โปรแกรม Yuo ประเภทใดที่ต้องการเปิด / ยุติ ฉันสามารถเขียน daemon ของคุณซึ่งจะรันสคริปต์ bash และส่ง "SSID" ที่เชื่อมต่อและ "SSID" ของเครือข่ายที่ตัดการเชื่อมต่อ
Mateusz Szlosek

ไม่เป็นไรฉันเห็นว่าจอร์จพบโซลูชั่นที่ดี :)
Mateusz Szlosek

@Mateusz ซอฟต์แวร์ของบุคคลที่สามนั้นไม่ใช่ทางออกที่ดีกว่าเสมอไป
grg

@MateuszSzlosek ฉันยังสงสัยว่าโซลูชันของคุณจะเป็นอย่างไร เพื่อจุดประสงค์ของฉันฉันต้องการบางสิ่งที่น้อยกว่าแอปพลิเคชันอื่นเนื่องจากฉันจะใช้โซลูชันของคุณเพื่อเชื่อมต่อแอปพลิเคชันของฉัน
rsaxvc

@rsaxvc ฉันได้โพสต์ลิงค์ Github ด้วยการติดตั้งอย่างรวดเร็ว จำนวนมากสามารถเปลี่ยนแปลงได้ แต่คุณจะได้รับพื้นฐาน :)
Mateusz Szlosek

คำตอบ:


12

คุณสามารถใช้ControlPlaneซึ่งคุณสามารถตั้งค่ากฎเพื่อทำงานต่าง ๆ เช่นการเปิดแอปตามเกณฑ์ต่างๆซึ่งรวมถึงการเชื่อมต่อกับ Wi-Fi

ControlPlane รองรับหลายบริบทที่บริบทถูกกำหนดเป็นสถานที่หรือกิจกรรมที่คุณกำลังดำเนินการอยู่ การใช้แหล่งหลักฐานคุณสามารถสร้างชุดของกฎที่บอก ControlPlane ว่าบริบทใดที่จะนำไปใช้กับสภาพแวดล้อมของคุณ เมื่อ ControlPlane เข้าหรือออกจากบริบทจะมีการดำเนินการชุดหนึ่ง

ControlPlaneXซึ่งเป็นทางแยกอย่างเป็นทางการของโครงการโอเพ่นซอร์สได้ทำให้โครงการทำงานต่อไปที่โมฮาวี



@Seamus ฉันได้เพิ่มลิงก์ไปยัง fork ที่ดูแลซึ่งรวมถึงการสนับสนุน Mojave
grg

ขอบคุณ แต่ "ส้อมที่ไม่เป็นทางการ" หมายถึงอะไร คุณรู้หรือไม่
เชมัส

@Seamus ฉันใช้คำนี้เพื่ออธิบายวิธีการที่โครงการโอเพนซอร์สยังคงดำเนินต่อไป ControlPlaneX เป็น 'fork' ของ ControlPlane ซึ่งหมายความว่ามันยังคงใช้ซอร์สโค้ดเดียวกับต้นฉบับและสิ่งปลูกสร้างที่อยู่ด้านบนของมันซึ่งเป็นไปได้เนื่องจากโครงการดั้งเดิมเป็นโอเพ่นซอร์ส หากผู้แต่งดั้งเดิมของโครงการเลือกทางแยกเพื่อกระตุ้นให้ผู้คนมีส่วนร่วมสิ่งนี้จะกลายเป็นทางแยกอย่างเป็นทางการอย่างไรก็ตามไม่ปรากฏว่าผู้เขียนต้นฉบับได้ทำเช่นนั้นด้วยส้อมใด ๆ ดังนั้นส้อมทั้งหมดจึงไม่เป็นทางการดังนั้น 'ส้อมที่ไม่เป็นทางการ' . อันนี้ดูเหมือนจะเป็นทางแยกที่นิยมมากที่สุด
grg

สถานการณ์ที่น่าสนใจนั้น ... เจ้าของเดิมขอความช่วยเหลือและแทนที่จะมีใครบางคนแยกไปตามทางของตัวเอง เป็นธรรมในความรักและเปิดแหล่งที่มาฉันคิดว่า :)
เชมัส

7

ฉันสร้างแอป daemon ตัวอย่างเพื่อจุดประสงค์นี้ คุณสามารถค้นหาได้ในGithub

วิธีทำให้มันทำงาน:

  • รวบรวมโดยใช้ Xcode
  • ย้ายNetwork Listener.appไป/Applicationsdir
  • ย้าย.networkConnectedและ.networkDisconnectedเพื่อคุณ$HOMEdir
  • ย้ายไปNetwork-Listener.plist~/Library/LaunchAgents
  • ทำ.networkConnectedและ.networkDisconnectedปฏิบัติการได้

มันจะทำงานโดยอัตโนมัติเมื่อคุณเข้าสู่บัญชีของคุณ หากคุณต้องการทดสอบให้รันในเทอร์มินัล :

launchctl load -S Aqua -w ~/Library/LaunchAgents/Network-Listener.plist

สคริปต์ได้รับชื่อSSIDเป็นอาร์กิวเมนต์

อย่าลังเลที่จะเปลี่ยนมันตามความต้องการของคุณ ในกรณีที่มีปัญหาใด ๆ แจ้งให้เราทราบ


ทุกอย่างถูกสร้างขึ้นเพื่อแสดงความเป็นไปได้สิ่งต่าง ๆ สามารถปรับปรุงได้


1
ขอบคุณสำหรับแรงบันดาลใจ Mateusz ฉันได้สร้างแอพที่คล้ายกับของคุณเพื่อรันสคริปต์การเชื่อมต่อ VPN ของฉันบน Github รวมถึงไบนารีแอปที่คอมไพล์แล้วสำหรับ wo ที่ต้องการ: github.com/p2/WifiWatch
Pascal

6

คุณสามารถใช้Sidekickซึ่งช่วยให้คุณทำการ 'กระทำ' เมื่อเปลี่ยนตำแหน่ง มีการรายงานตำแหน่งโดยใช้ Wi-Fi เฉพาะซึ่งหมายความว่าคุณสามารถทำสิ่งต่าง ๆ เมื่อมีการเปลี่ยนแปลง Wi-Fi

เพื่อนสนิทเป็นแอปพลิเคชั่นที่อัปเดตการตั้งค่าแล็ปท็อปของคุณโดยอัตโนมัติตามตำแหน่งที่คุณอยู่ เพียงติดตั้งแอพกำหนดค่าสถานที่ที่คุณใช้บ่อย (ที่บ้านที่ทำงานร้านกาแฟ ฯลฯ ) และอย่าไปยุ่งกับการตั้งค่าของคุณอีกเลย!


3
เพื่อนสนิทในขณะนี้คือ $ 29.00
respectTheCode
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.