Dapatkah Mac OS X diatur untuk secara otomatis mengkonfigurasi antarmuka Airport-nya dengan alamat IP statis ketika terhubung ke jaringan Wifi dengan nama tertentu, dan pada semua jaringan Wifi lainnya menggunakan DHCP?
Saat ini saya menggunakan fitur "Lokasi" pada bagian "Jaringan" di System Preferences untuk secara manual beralih di antara dua pengaturan alamat IP. Saya memiliki pengaturan "IP statis saya", dan pengaturan "DHCP" default. Namun ini memerlukan memasuki System Preferences untuk mengubah drop-down Lokasi setiap kali saat berpindah lokasi. Bisakah ini otomatis?
Lebih disukai ini akan dilakukan tanpa perangkat lunak pihak ketiga.
sumber
Dimungkinkan untuk melakukannya tanpa pihak ketiga, lihat https://github.com/rimar/wifi-location-changer
sumber
Solusi pihak ketiga, tidak bebas yang mungkin akan bekerja untuk Anda adalah Lokasi .
Seperti yang disarankan oleh jawaban ini untuk pertanyaan yang serupa, tetapi tidak identik, tentang stackoverflow, Anda dapat membuat skrip yang berjalan pada interval reguler.
launchd
akan mencegahnya berjalan lebih dari sekali.Psuedocode:
networksetup -getairportnetwork AirPort
networksetup -switchtolocation {location}
mana {location} adalah nama lokasi yang ingin Anda alihkan berdasarkan jaringan wifi yang ditemukan.Mungkin ada situasi ayam dan telur di sini dengan menghubungkan ke wifi lokal yang tidak memberikan alamat DHCP saat Anda dikonfigurasi untuk mengharapkan alamat dari DHCP.
-
Perbarui: temukan kemungkinan pertanyaan rangkap yang menyarankan solusi opensource: MarcoPolo
sumber
Karena jawaban yang diberikan adalah manual, berikut ini adalah skrip sederhana yang mengubahnya secara otomatis:
Buat berbagai lokasi di System Preferences> Network untuk mencerminkan setiap jaringan WiFi Anda.
Skrip: (
/usr/bin/autolocation.sh
) Letakkan ini di beberapa lokasi yang Anda inginkan dan ubah nilai SSID dalam skrip sesuai dengan skenario Anda.Script ini akan mengubah lokasi jaringan (pengaturan) berdasarkan SSID dari jaringan nirkabel. Sekarang, ini harus dijalankan setiap kali ada perubahan dalam pengaturan jaringan. Kami akan membuat agen launchd untuk melakukan hal yang sama.
launchd plist: (
~/Library/LaunchAgents/com.vg.netwatcher.plist
)Saya membuat file ini di
~/Library/LaunchAgents
(di dalam dir home saya) karena saya satu-satunya pengguna yang menggunakan mesin ini. Jika Anda ingin menjadi global, masukkan/Library/LaunchAgents
.File ini harus dimiliki oleh
root
dan memiliki600
izin:Setelah Anda keluar / masuk atau reboot sistem, agen peluncuran akan mulai bekerja tergantung pada tempat Anda meletakkan file (direktori home atau global Anda). Tetapi jika Anda tidak ingin melakukan itu dan ingin memuat sekarang, jalankan yang berikut di baris perintah. Anda harus melakukannya hanya sekali.
Itu dia. Sekarang IP Mac Anda akan berubah secara otomatis.
Catatan: Bekerja di El Capitan juga!
sumber
Memperkenalkan Pengubah Lokasi
Berikut ini skrip yang sangat menjanjikan untuk mengubah lokasi jaringan berdasarkan WiFi SSID:
Ini dibuat oleh Anton Eprev . Anda dapat melihat kode dan dokumentasi yang lebih rinci di GitHub:
Instalasi
Itu menginstal melalui baris perintah:
Ini akan meminta Anda untuk kata sandi root untuk menginstal
locationchanger
ke/usr/local/bin
direktori.Itu dia!
Setelah itu, jika ada lokasi jaringan yang namanya identik dengan nama (SSID) dari jaringan WiFi saat ini , itu akan secara otomatis beralih ke lokasi jaringan. Kalau tidak, itu akan beralih ke lokasi Otomatis . (BTW, jika tidak ada lokasi yang disebut Otomatis , ia mengeluh dalam log dan keluar.)
Skrip khusus lokasi
Jika Anda ingin menjalankan skrip setiap kali terhubung ke jaringan WiFi tertentu, masukkan skrip tersebut
~/.locations
dan beri nama setelah jaringan WiFi, misalnya~/.locations/Corp Wi-Fi
:Dan Anda mungkin ingin membuat
~/.locations/Automatic
yang akan mengatur ulang perubahan di lokasi lain:Pastikan untuk memberikan bit eksekusi pada skrip (
chmod +x
).Alias lokasi
Anda dapat berbagi lokasi jaringan antara beberapa jaringan WiFi. Misalnya, jika Anda memiliki router nirkabel yang mengudara pada band 2.4 dan 5GHz secara bersamaan, Anda dapat membuat file konfigurasi
~/.locations/locations.conf
dan memasukkan pasangan nilai kunci sederhana di dalam:Di sini kunci adalah nama jaringan WiFi , dan nilainya adalah lokasi jaringan yang sesuai . Bergabunglah dengan mereka dengan tanda sama dengan (
=
tanpa spasi). Dalam contoh di atas, jika jaringan WiFi Home_WiFi_5GHz tersambung, itu akan beralih ke lokasi jaringan Home_WiFi .Perhatikan bahwa alias lokasi mengambil prioritas di atas aturan nama yang sama. Dalam contoh di atas, hanya skrip yang
~/.locations/Home_WiFi
akan berjalan ketika Anda terhubung ke jaringan WiFi Home_WiFi_5GHz .Dengan alias lokasi, Anda bahkan tidak perlu membuat lokasi jaringan tambahan untuk mencocokkan nama jaringan WiFi.
Penyelesaian masalah
Anda dapat melihat log yang luas dengan perintah berikut:
Output sampel:
Penghapusan Instalasi
Pertama, bongkar agen peluncuran:
Kemudian, hapus file biner, plist dan log:
Anda juga dapat menghapus file konfigurasi dan skrip khusus lokasi di dalam
~/.locations
:sumber