প্রথমত, আপনার সিস্টেমে হোমব্রিউ ইনস্টল করা দরকার। যদি আপনার না থাকে তবে নির্দেশাবলীর জন্য http://brew.sh দেখুন , বা আমাকে জানান এবং আমি আপনাকে গাইড করার চেষ্টা করব।
তারপরে আপনার ইনস্টল করা দরকার arp-scan
। এটি করতে, একটি টার্মিনাল খুলুন এবং টাইপ করুন brew install arp-scan
।
পরবর্তী পর্ব. নীচের স্ক্রিপ্টটি সংরক্ষণ করুন, আমি কল করেছি check-iphone-available.scpt
, তবে আপনি চাইলে আপনার নাম পরিবর্তন করতে পারেন।
set IPHONE to do shell script "if /usr/local/bin/arp-scan -l | grep your-iphone-mac; then echo 1; else echo 0; fi" user name "your-username" password "your-password" with administrator privileges
tell application "System Events"
tell process "Messages"
tell menu bar 1
tell menu bar item "Messages"
tell menu "Messages"
tell menu item "My Status"
tell menu "My Status"
if IPHONE is not equal to "0" then
click menu item "Available"
else
click menu item "Away"
end if
end tell
end tell
end tell
end tell
end tell
end tell
end tell
প্রতিস্থাপন your-username
, your-password
এবং your-iphone-mac
।
your-username
আপনার কম্পিউটারে sudo করতে পারেন এমন একজন প্রশাসক ব্যবহারকারী অবশ্যই থাকতে হবে।
your-password
যে ব্যবহারকারীর জন্য পাসওয়ার্ড।
your-iphone-mac
আপনার আইফোনে পাওয়া যাবে, Settings
-> General
-> এ যান About
এবং অনুলিপি করুন Wi-Fi Address
।
অনুমোদন দিন: chmod 775 check-iphone-available.scpt
।
স্ক্রিপ্ট প্রশাসক হিসাবে কমান্ড কার্যকর করে arp-scan
। এই কমান্ডটি স্থানীয় নেটওয়ার্কের হোস্টগুলিতে এআরপি প্যাকেট প্রেরণ করে এবং প্রাপ্ত যে কোনও প্রতিক্রিয়া প্রদর্শন করে। grep
উত্তরে আপনার আইফোন জন্য কমান্ড বর্ণন দ্বারা প্রাপ্ত arp-scan
। যদি আইফোন পাওয়া যায়, তারপর 1 ফিরে, অন্যথায়, 0 ফিরে 1 উপর, স্ক্রিপ্ট উপর দূরে বার্তা পাওয়া যায় মেনু আইটেমের উপর ক্লিক না, 0, একই (দ্বারা পরিবর্তন করা যাবে Offline
, On the phone
ইত্যাদি)।
সুতরাং, আসুন এটি স্বয়ংক্রিয়ভাবে করা যাক।
ফোল্ডারে যান /Users/your-username/Library/LaunchAgents
এবং সেখানে নিম্নলিখিত plist ফাইল সংরক্ষণ করুন। আমি এর নাম দিয়েছি com.username.checkiphone.plist
, তবে আবার এটি পরিবর্তন করতে নির্দ্বিধায়।
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.your-username.checkiphone</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/osascript</string>
<string>/Users/your-username/bin/check-iphone-available.scpt</string>
</array>
<key>Nice</key>
<integer>1</integer>
<key>StartInterval</key>
<integer>60</integer>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/com.your-username.checkiphone-available.err</string>
<key>StandardOutPath</key>
<string>/tmp/com.your-username.checkiphone-available.out</string>
</dict>
</plist>
ফাইলটি বেশ স্ব-ব্যাখ্যামূলক। আমরা /usr/bin/osascript /Users/your-username/bin/check-iphone-available.scpt
প্রতি 60 সেকেন্ডে কমান্ডটি চালু করব, লোডে চালু হবে, ত্রুটিগুলি সংরক্ষণ করবে /tmp/com.username.checkiphone-available.err
এবং লগ ইন করব /tmp/com.username.checkiphone-available.out
।
আবার your-username
যথাযথভাবে প্রতিস্থাপন করুন ।
শেষ পদক্ষেপ, ম্যাকটি লোড করা ডেমনটিকে বলুন।
launchctl load com.your-username.checkiphone.plist
স্ক্রিপ্ট বন্ধ করার জন্য, শুধু শব্দ প্রতিস্থাপন load
সঙ্গে unload
উপরে বাক্যে। যখন আপনার কম্পিউটারটি পুনরায় চালু হবে তখন স্ক্রিপ্টটি আবার লোড হবে। এটি রোধ করতে, এটিকে অন্য ফোল্ডারে সরান।