Mac OS X에서 네트워크 프로필을 액세스 포인트 이름으로 자동 전환

5248 단어 WiFiMac프록시

Sleep에서 해제할 때 네트워크 프로파일을 액세스 포인트 이름으로 자동 전환



사용하는 Mac 환경은 OS X El Capitan 10.11.5, Mac book Pro입니다.

배경과 도전



회사 내 네트워크를 사용하려면 프록시 설정이 필요합니다. 인프라 부문에서는 Proxy의 자동 설정을 위한 파일(?)이 준비되어 있어, 통상은 이것을 Automatic Proxy Configuration으로 설정해 두면 됩니다만, 아무래도 Mac 대응이 잘 하고 있지 않은지 알 수 있습니다 아니지만 수동으로 프록시를 설정하지 않으면 잘 작동하지 않는 것에 많이 접했습니다. Mac을 집에 가져와 이용하는 경우에는 Proxy를 분리할 필요가 있어, 이 근처의 조작이 맨도라고 느끼고 있어, 이하와 같이 대응해 보았습니다.

Mac OS X의 네트워크 프로필 설정



이것을 시작하기 전에는 일일이 손으로 Proxies의 설정을 포치포치 변경하고 있었습니다만, 「Location」이라고 하는 설정이 있는 것을 깨닫고, 이것을 사용하기로 했습니다. Location에 'Intra'를 만들고 Intra는 고정으로 Proxy를 설정하도록했습니다.



이것으로 종래보다는 간단하게 네트워크 설정을 바꿀 수 있게 되었습니다만, 안내외, 이 전환까지의 메뉴 조작이 깊고 맨도입니다. 어떻게든 할까라고, 스크립트화해 보았습니다.

현재 연결된 SSID의 이름을 확인하고 그에 따라 구성된 네트워크 프로필을 전환합니다. 전환에는 scselect라는 명령을 사용하고 있습니다. 시험에 terminal에서 scselect를 실행해 보면 움직임을 알 수 있다고 생각합니다.

#!/bin/bash

# set AccessPoint uniqe name for switch profile.
appname=Buffalo

if [ "`networksetup -getairportnetwork  en0  | awk '{print $4}'`" = "$appname" ]; then
    scselect Intra
else
    scselect Automatic
fi

htps : // 기 st. 기주 b. 코 m / 고바코 / 오 54f806bc3550 646 아 31837 에 f f b982
appname 부분을 Intra에서 사용하는 SSID로 변경하십시오.

Sleep 해제로 스크립트를 자동 실행하여 자동 설정 변경



이렇게 되면, Sleep로부터의 해제등을 트리거에 이 스크립트를 움직여 자동 설정해 주었으면 하는군요. 여러가지 찾아 보았습니다만 좀처럼 쉬운 방법을 찾을 수 없고,. Sleepwatcher 을 사용하면 좋을 것 같습니다. (그 밖에도 더 편한 방법이 있으면 알려주세요!) Readme.rtf의 절차에 따라 SleepWatcher를 설치하고 위의 스크립트를 실행하도록 설정!

SleepWatcher의 도입 순서는 이 기사 가 참고가 되었습니다. 대충 로그를 붙이면,
$ sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher /usr/local/sbin
$ sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher.8 /usr/local/share/man/man8

$ cp ~/Desktop/sleepwatcher_2.2/config/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist ~/Library/LaunchAgents/
$ launchctl  load ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist
$ launchctl list | grep sleepwatcher

방금 스크립트를 .wakeup으로 호출 할 수 있습니다.
$ ln -s ~/Documents/tools/check-n-select-netprof.sh ./.wakeup

이것으로 잘 작동했습니다 (^^)

작업 후 후일담 : Sleep 해제라고 너무 빠르므로 Alfred에서 실행할 수 있도록 설정



실제로, 운용하고 있어 알았습니다만, 같은 장소에 있으면 좋겠습니다만 의외 장소를 이동하고 있으면 Sleep 해제시에는 WiFi가 아직 접속되어 있지 않은 것이 많아, 예상대로의 액세스 포인트명 (SSID)가 잡히지 않는 것이 좋았습니다.

어쩔 수 없이 Terminal을 기동해, 실행하는 일이 있었습니다만, 모처럼이므로 AppleScript로 기동할 수 있도록 해, 그것을 Alfred 로 호출하도록(듯이) 했습니다.

do shell script "~/Documents/tools/check-n-select-netprof.sh"
display dialog result


이런 스크립트를 저장합니다.

Alfred는 기본적으로 AppleScript를 찾고 있지 않으므로 체크를 둡니다.



이제 잘 작동하지 않을 때에도 Alfred에서 스크립트를 실행할 수 있습니다.

이것만 빨리 실행할 수 있다면, Sleep 해제를 자동 검출할 필요는 없었군요. 그리고 지금은 깨달았습니다.

또한 후일담


.sh.app 로 두면 Alfred에서 호출하는 것을 알았고 Alfred에서 자동으로 자동 선택 스크립트를 실행하는 것이 가장 확실하다는 것을 알았습니다. 드디어 Banner로 은근하게 실행 결과를 통지하는 느낌으로 변경.



스크립트(Github gist).app로 이름을 바꾸고 사용할 수 있습니다.

(완전히 기사 제목에서 내용이 괴리해 버렸다...웃음)

좋은 웹페이지 즐겨찾기