ম্যাক ওএস এক্স অবস্থান অনুসারে স্বয়ংক্রিয়ভাবে আইপি কনফিগারেশন পরিবর্তন করে (ওয়াইফাই নেটওয়ার্ক দ্বারা)?


10

কোনও নির্দিষ্ট নামের সাথে কোনও ওয়াইফাই নেটওয়ার্কের সাথে সংযুক্ত থাকাকালীন ম্যাক ওএস এক্সকে স্থির আইপি ঠিকানার সাথে তার বিমানবন্দর ইন্টারফেসটি স্বয়ংক্রিয়ভাবে কনফিগার করার জন্য সেটআপ করা যেতে পারে এবং অন্য সমস্ত ওয়াইফাই নেটওয়ার্কগুলিতে ডিএইচসিপি ব্যবহার করতে পারে?

দুটি আইপি অ্যাড্রেস সেটআপের মধ্যে ম্যানুয়ালি স্যুইচ করতে আমি বর্তমানে সিস্টেম পছন্দগুলিতে "নেটওয়ার্ক" বিভাগের "অবস্থান" বৈশিষ্ট্যটি ব্যবহার করছি। আমার একটি "আমার স্ট্যাটিক আইপি" সেটআপ এবং একটি ডিফল্ট "ডিএইচসিপি" সেটআপ রয়েছে। তবে এর জন্য লোকেশনগুলি স্যুইচ করার সময় প্রতিবার লোকেশন ড্রপ-ডাউন পরিবর্তন করতে সিস্টেম পছন্দগুলি প্রবেশ করা দরকার। এটি কি স্বয়ংক্রিয় করা যায়?

সাধারণত তৃতীয় পক্ষের সফ্টওয়্যার ছাড়াই এটি করা হবে।

উত্তর:


8

এটি এমন কোনও জিনিস নয় যা কেবল ওএসের মাধ্যমে করা যায়।

উপরোক্ত অবস্থানগুলি হ'ল ফ্রিওয়্যার বিমানবন্দর অবস্থান বা মার্কোপোলো বা প্রদেয় নেটওয়ার্ক অবস্থানের পাশাপাশি একটি বিকল্প । WiFiScriptor নামে একটি অ্যাপলস্ক্রিপ্টও রয়েছে যা সাহায্য করতে পারে।

যাহোক! আপনার সিস্টেম পছন্দ -> নেটওয়ার্ক -> [অবস্থান ড্রপডাউন] এ যাওয়ার দরকার নেই। আপনি অ্যাপল মেনু -> অবস্থানের (প্রায় 6 টি বিকল্প নীচে) যেতে পারেন -> [আপনি যে অবস্থানটি চান সেটি নির্বাচন করুন]

-b


1
অ্যাপল মেনু থেকে অবস্থানগুলি স্যুইচ করার বিষয়ে পরামর্শের জন্য ধন্যবাদ। যদিও এখনও ম্যানুয়াল, এটি একাধিক পদক্ষেপের সাথে সিস্টেম পছন্দগুলিতে যাওয়ার চেয়ে কমপক্ষে কিছুটা ভাল অনুভব করে।
মার্কাস হলম্যান

তৃতীয় পক্ষের সফ্টওয়্যার ছাড়া এটি করা (বর্তমানে) সম্ভব নয় তা নিশ্চিত করার জন্য ধন্যবাদ।
মার্কাস হলম্যান

বিমানবন্দর অবস্থানের লিঙ্কটি এখন একটি স্প্যাম ওয়েবসাইটকে
নাট

9

কোনও তৃতীয় পক্ষ ছাড়া এটি করা সম্ভব, https://github.com/rimar/wifi-location-changer দেখুন


2
আমি এটি যুক্ত করতে চাই এটি কাজ করার জন্য, আপনার অবস্থানের নামটি ওয়াইফাই নেটওয়ার্কের এসএসআইডি'র মতো হওয়া উচিত। স্ক্রিপ্টের যুক্তিটি হ'ল এটি এসএসআইডি অনুরূপ নামের সাথে একটি অবস্থান অনুসন্ধান করে এবং এটিতে স্যুইচ করে। যদি সেই নামের কোনও অবস্থান না থাকে, তবে এটি স্বয়ংক্রিয় / স্বয়ংক্রিয়র ডিফল্ট হয়।
রাইস্ট্রাম

এছাড়াও, ইয়োসেমাইটে কাজ শুরু করার আগে আমাকে লগ আউট এবং আবার লগ ইন করতে হয়েছিল।
djule5

1

একটি তৃতীয় পক্ষ, অ-মুক্ত সমাধান যা সম্ভবত আপনার জন্য কাজ করবে এটি হ'ল লোকেশন

স্ট্যাকওভারফ্লো সম্পর্কিত কোনও অনুরূপ, তবে অভিন্ন নয়, এই উত্তরটির পরামর্শ অনুসারে আপনি একটি স্ক্রিপ্ট তৈরি করতে পারেন যা নিয়মিত বিরতিতে চলে। launchdএটি একাধিকবার চালানো থেকে রোধ করবে।

Psuedocode:

  • একটি ফাইল থেকে save_wifi মান পান
  • এর আউটপুটে কারেন্ট_ওয়াইফাই সেট করুন networksetup -getairportnetwork AirPort
  • যদি save_wifi == কারেন্ট_ওয়াইফাই থাকে তবে প্রস্থান করুন
  • অন্যথায় চালান networksetup -switchtolocation {location}যেখানে {লোকেশন আপনি যে ওয়াইফাই নেটওয়ার্কটি পেয়েছেন তার উপর ভিত্তি করে আপনি যে অবস্থানটিতে স্যুইচ করতে চান সেই নামটির নাম।

স্থানীয় ওয়াইফাইয়ের সাথে সংযোগ স্থাপনের সাথে এখানে মুরগি এবং ডিমের পরিস্থিতি থাকতে পারে যা আপনি ডিএইচসিপি থেকে কোনও ঠিকানা আশা করার জন্য কনফিগার করা অবস্থায় কোনও ডিএইচসিপি ঠিকানা সরবরাহ করে না।

-

আপডেট: সম্ভাব্য সদৃশ প্রশ্নটি পাওয়া গেছে যা একটি ওপেনসোর্স সমাধানের পরামর্শ দেয়: মার্কোপোলো


1

প্রদত্ত উত্তরটি ম্যানুয়াল হওয়ায় এখানে একটি সাধারণ স্ক্রিপ্ট যা এটি স্বয়ংক্রিয়ভাবে পরিবর্তন করে:

আপনার প্রতিটি ওয়াইফাই নেটওয়ার্ক প্রতিবিম্বিত করতে সিস্টেম পছন্দসমূহ> নেটওয়ার্কে বিভিন্ন অবস্থান তৈরি করুন।

স্ক্রিপ্ট: ( /usr/bin/autolocation.sh) এটিকে আপনার পছন্দ অনুসারে স্ক্রিপ্টে এসএসআইডি মানগুলি পছন্দ এবং এমন কিছু জায়গায় রেখে দিন।

#!/bin/sh

#get the ssid of the network we are on
ssid=`ioreg -l -n AirPortDriver | grep 80211SSID | sed 's/|//g' | sed 's/"//g' | sed 's/  */ /g' | awk '{print $3}'`

if [ $ssid = "voicegear" ]
then
        location="Office / Home"
elif [ $ssid = "vijay" ]
then
        location="Office / Home"
elif [ $ssid = "SCTHO" ]
then
        location="Shriram Santhome"
else
        location="Automatic"
fi

#update the location
newloc=`/usr/sbin/scselect "${location}" | sed 's/^.*(\(.*\)).*$/\1/'`

echo "${newloc}"

এই স্ক্রিপ্টটি ওয়্যারলেস নেটওয়ার্কের এসএসআইডি ভিত্তিতে নেটওয়ার্ক অবস্থান (সেটিংস) পরিবর্তন করবে। এখনই যখনই নেটওয়ার্ক সেটিংসে কোনও পরিবর্তন আসে তখনই এটি চালানো উচিত। আমরা এটি করার জন্য একটি লঞ্চ করা এজেন্ট তৈরি করব।

চালু করা প্লিস্ট: ( ~/Library/LaunchAgents/com.vg.netwatcher.plist)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Disabled</key>
        <false/>
        <key>Label</key>
        <string>com.vg.netwatcher</string>
        <key>Program</key>
        <string>/usr/bin/autolocation.sh</string>
        <key>LaunchEvents</key>
        <dict>
                <key>com.apple.notifyd.matching</key>
                <dict>
                        <key>com.apple.system.config.network_change</key>
                        <dict>
                                <key>Notification</key>
                                <string>com.apple.system.config.network_change</string>
                        </dict>
                </dict>
        </dict>
        <key>KeepAlive</key>
        <true/>
</dict>
</plist>

আমি এই ফাইলটি তৈরি করেছি ~/Library/LaunchAgents(আমার বাড়ির ডীরের ভিতরে) কারণ আমি এই মেশিনটি ব্যবহার করছি user আপনি যদি এটি বিশ্বব্যাপী হতে চান তবে এটি প্রবেশ করান /Library/LaunchAgents

এই ফাইলটির মালিকানা থাকতে হবে rootএবং এর 600অনুমতি থাকতে হবে:

sudo chown root Library/LaunchAgents/com.vg.netwatcher.pist
sudo chmod 600 Library/LauhchAgents/com.vg.netwatcher.plist

আপনি একবার লগআউট / লগইন বা সিস্টেমটি পুনরায় বুট করার পরে, আপনি কোথায় ফাইলটি রেখেছেন তার উপর ভিত্তি করে লঞ্চ এজেন্ট কাজ শুরু করবে (আপনার বাড়ির দির বা গ্লোবাল)। তবে আপনি যদি এটি না করতে চান এবং এটি এখনই লোড করতে চান, কমান্ড লাইনে নিম্নলিখিতটি চালান। আপনাকে এটি একবারই করতে হবে।

cd ~/Library/LaunchAgents
sudo launchctl load -w com.vg.netwatcher.plist

এটাই. এখন আপনার ম্যাকের আইপি স্বয়ংক্রিয়ভাবে পরিবর্তন হবে।

দ্রষ্টব্য: এল ক্যাপিটেনেও কাজ করে!


1

স্থান পরিবর্তনকারী পরিচয় করিয়ে দেওয়া

ওয়াইফাই এসএসআইডি ভিত্তিতে নেটওয়ার্ক অবস্থান পরিবর্তন করার জন্য এখানে একটি খুব প্রতিশ্রুতিবদ্ধ স্ক্রিপ্ট:

এটি অ্যান্টন এপ্রিভ তৈরি করেছেন । আপনি গিটহাবে কোড এবং আরও বিস্তারিত ডকুমেন্টেশন দেখতে পারেন:

স্থাপন

এটি কমান্ড লাইনের মাধ্যমে ইনস্টল করে:

$ curl -L https://github.com/eprev/locationchanger/raw/master/locationchanger.sh | bash

এটি আপনাকে ডিরেক্টরিতে ইনস্টল locationchangerকরতে একটি রুট পাসওয়ার্ডের জন্য জিজ্ঞাসা করবে /usr/local/bin

এটাই!

এর পরে, যদি এমন কোনও নেটওয়ার্ক অবস্থান থাকে যার নামটি বর্তমান ওয়াইফাই নেটওয়ার্কের নামের (এসএসআইডি) সাথে সাদৃশ্যযুক্ত , তবে এটি স্বয়ংক্রিয়ভাবে নেটওয়ার্কের অবস্থানে স্যুইচ করবে। অন্যথায়, এটি স্বয়ংক্রিয় অবস্থানে স্যুইচ হবে । (বিটিডাব্লু, যদি অটোমেটিক নামে কোনও অবস্থান না থাকে তবে এটি লগগুলিতে অভিযোগ করে এবং প্রস্থান করে))

অবস্থান-নির্দিষ্ট স্ক্রিপ্ট

আপনি যদি কোনও নির্দিষ্ট ওয়াইফাই নেটওয়ার্কের সাথে সংযোগ স্থাপনের সময় যদি কোনও স্ক্রিপ্ট চালাতে চান তবে সেই স্ক্রিপ্টগুলি এতে রেখে ~/.locationsওয়াইফাই নেটওয়ার্কের নামে নাম দিন, যেমন ~/.locations/Corp Wi-Fi:

#!/usr/bin/env bash

# Require password immediately after sleep or screen saver begins
osascript -e 'tell application "System Events" to set require password to wake of security preferences to true'

এবং আপনি এটি তৈরি করতে চাইতে পারেন ~/.locations/Automaticযা অন্যান্য স্থানগুলিতে এই পরিবর্তনগুলি পুনরায় সেট করবে:

#!/usr/bin/env bash

# Don’t require password immediately after sleep or screen saver begins
osascript -e 'tell application "System Events" to set require password to wake of security preferences to false'

স্ক্রিপ্টগুলিতে ( chmod +x) এক্সিকিউশন বিট castালাই নিশ্চিত করুন ।

অবস্থানের উপন্যাস

আপনি একাধিক ওয়াইফাই নেটওয়ার্কের মধ্যে একটি নেটওয়ার্ক অবস্থান ভাগ করতে পারেন। উদাহরণস্বরূপ, যদি আপনার কাছে একটি ওয়্যারলেস রাউটার থাকে যা একই সাথে 2.4 এবং 5GHz ব্যান্ডগুলিতে সম্প্রচার করে, আপনি একটি কনফিগারেশন ফাইল তৈরি করতে পারেন ~/.locations/locations.confএবং ভিতরে কী কী-মান যুক্ত করতে পারেন :

Home_WiFi_5GHz=Home_WiFi

এখানে কীগুলি ওয়াইফাই নেটওয়ার্কের নাম এবং মানগুলি স্থানীয় নেটওয়ার্কের সাথে সম্পর্কিত । খালি সমান লক্ষণগুলির সাথে তাদের সাথে যোগ দিন ( =কোনও স্থান ছাড়াই)। উপরের উদাহরণে, যদি WiFi নেটওয়ার্ক Home_WiFi_5GHz সংযুক্ত করা হয়, এটা নেটওয়ার্ক অবস্থান পাল্টাতে হবে Home_WiFi

লক্ষ্য করুন যে অবস্থানের উপাধিগুলি একই নামের নিয়মের চেয়ে অগ্রাধিকার নেয়। উপরের উদাহরণে, কেবলমাত্র স্ক্রিপ্টটি ~/.locations/Home_WiFiচলবে যখন আপনি ওয়াইফাই নেটওয়ার্ক হোম_ওয়াইফাই_ 5 জিএইচজেডের সাথে সংযুক্ত থাকবেন

অবস্থানের এলিয়াসগুলির সাথে, আপনার এমনকি ওয়াইফাই নেটওয়ার্কের নামের সাথে মিলে অতিরিক্ত নেটওয়ার্ক অবস্থান তৈরি করার প্রয়োজন নেই।

সমস্যা সমাধান

নিম্নলিখিত কমান্ডের সাহায্যে আপনি বিস্তৃত লগগুলি দেখতে পারেন:

$ tail -f ~/Library/Logs/LocationChanger.log

নমুনা আউটপুট:

[2017-10-13 11:35] Connected to 'Unknown WiFi'
[2017-10-13 11:35] Location 'Unknown WiFi' was not found. Will default to 'Automatic'
[2017-10-13 11:35] Changing the location to 'Automatic'
CurrentSet updated to 6B593A12-C51B-3FF1-DE1D-87310F232147 (Automatic)
[2017-10-13 11:37] Connected to 'Home_WiFi_5GHz'
[2017-10-13 11:37] Will switch the location to 'Home_WiFi' (configuration file)
[2017-10-13 11:37] Changing the location to 'Home_WiFi'
CurrentSet updated to 7900D1E6-3820-50C6-882E-4F5K2BEF32ED (Home_WiFi)

আনইনস্টলেশান

প্রথমে লঞ্চ এজেন্টটি আনলোড করুন:

launchctl unload ~/Library/LaunchAgents/LocationChanger.plist

তারপরে, বাইনারি, প্লাস্ট এবং লগ ফাইলটি সরান:

rm ~/Library/LaunchAgents/LocationChanger.plist
rm ~/Library/Logs/LocationChanger.log
sudo rm /usr/local/bin/locationchanger

আপনি ভিতরে কনফিগারেশন ফাইল এবং অবস্থান-নির্দিষ্ট স্ক্রিপ্টগুলি অপসারণ করতে পারেন ~/.locations:

rm -rf ~/.locations
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.