Mac OS X은 rfkill
터미널에서 인식하지 못하며 비슷한 기능을 가진 다른 명령을 찾고 있습니다 ( “비행기 모드”전환).
참고 : .app
토글 을 열고 싶지 않습니다 . 커맨드 라인이나 Bash (또는 이와 동등한 것)의 스크립트 내에서 명령을 실행하고 싶습니다.
“비행기 모드”, 나는 아이폰 OS 지원 페이지에서 용어를 빌려 의미 여기 . 시스템에서 모든 수신 / 발신 네트워크 통신을 비활성화하고 싶습니다.
답변
이름이 isolated
있거나 airplane
모든 네트워크 인터페이스 가 있고 꺼져 있는 임시 위치를 만듭니다 .
다음을 사용하여이 청각 장애인 위치로 전환하십시오 :
networksetup -switchtolocation isolated
rfkill
모든 통신을들을 수있는 눈에 띄지 않는 이더넷 케이블로부터 보호 할 수 있기 때문에 더 흥미로울 수 있습니다. 모든 것이 실제로 꺼져 있는지 확인하려면 다음을 실행하십시오.
ifconfig -a | grep '[<,]UP[,>]' | grep -v '[<,]LOOPBACK[,>]'
이 명령이 아무 것도 표시하지 않으면 모든 인터페이스가 작동 중지 되고 모든 것이 정상입니다.
이 명령이 다음과 같이 아무것도 출력하면 :
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
인터페이스 이름 (여기서는 en1
이 Mac의 무선 이름 )은 사용하지 않아야 할 위치에 있음을 의미합니다. 이것은 구성이 실패했거나 일부 트로이 목마가 인터넷을 통해 제어 서버에 연결하도록 설정했음을 나타냅니다.
답변
목표에 따라 (데이터 인터페이스를 종료하는 데 관심이 있습니까?) 그에 따라 계획을 선택할 수 있습니다.
(1) 네트워크 인터페이스 및 (2) 데이터 인터페이스 계획 A
(1) 네트워크 인터페이스 계획 B
(계획 A # 1) 설치된 하드웨어 인터페이스 정보 (데이터 인터페이스 포함)를 가져옵니다.
먼저, 얼마나 많은 인터페이스를 사용해야하는지 알고 싶습니다.
$ networksetup -listallhardwareports
Hardware Port: Bluetooth DUN
Device: Bluetooth-Modem
Ethernet Address: N/A
Hardware Port: Ethernet
Device: en0
Ethernet Address: ff:ff:ff:ff:ff:ff
Hardware Port: FireWire
Device: fw0
Ethernet Address: ff:ff:ff:ff:ff:ff:ff:ff
Hardware Port: Wi-Fi
Device: en1
Ethernet Address: ff:ff:ff:ff:ff:f
(계획 A #?) (선택 사항) 네트워크 인터페이스 목록 만 가져옵니다.
이 단계를 통해 쉽게 수행 할 수 grep
있습니다.
$ networksetup -listallnetworkservices
An asterisk (*) denotes that a network service is disabled.
Ethernet
FireWire
Wi-Fi
(계획 A # 2) 네트워크 인터페이스의 장치 이름을 가져옵니다.
어떤 네트워크 인터페이스가 활성화되어 있는지 알고 싶습니다.
$ ifconfig
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether ff:ff:ff:ff:ff:ff
media: autoselect (none)
status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether ff:ff:ff:ff:ff:ff
inet6 ffff::ffff:ffff:ffff:ffff%en1 prefixlen 64 scopeid 0x5
inet 192.168.1.fff netmask 0xffffff00 broadcast 192.168.1.fff
media: autoselect
status: active
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078
lladdr ff:ff:ff:ff:ff:ff:ff:ff
media: autoselect <full-duplex>
status: inactive
(계획 B # 1) airport
명령을 찾 거나 airport
명령이 인식되지 않으면 명령의 별명을 설정하십시오 .
시스템에서 airport
명령을 인식 할 수 없으므로 에 아래 줄을 추가해야했습니다 .bash_profile
.
alias airport='/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport'
(계획 B # 2) 현재 AirPort 상태 확인 :
$ ./airport -I
agrCtlRSSI: -10
agrExtRSSI: 0
agrCtlNoise: -10
agrExtNoise: 0
state: running
op mode: station
lastTxRate: 100
maxRate: 100
lastAssocStatus: 0
802.11 auth: open
link auth: fffffffffffffffff
BSSID: ff:ff:ff:ff:ff:ff
SSID: MelvNetwork
MCS: 15
channel: 6
(계획 A & B # 3) AirPort 켜기 / 끄기 :
# For OS X 10.7 and later
$ networksetup -setairportpower en1 on # Turn on Airport
$ networksetup -setairportpower en1 off # Turn off Airport
# for OS X 10.6 and below
$ networksetup -setairportpower on # Turn on AirPort
$ networksetup -setairportpower off # Turn off AirPort
(Plan A & B # 4) BlueTooth 켜기 / 끄기 :
$ blueutil status # Check status of BlueTooth
Status: on
$ blueutil on # Turn BlueTooth on
$ blueutil off # Turn BlueTooth off
스크립트:
이제 모든 구성 요소를 갖추 었으므로 OS X 10.7 용 스크립트를 작성할 수 있습니다!
마지막 의견 :
(1) 일부 출력은 문자 ‘f’로 마스크됩니다.
(2)에 따르면 $ man networksetup
프록시, TCP / IP, PPPoE (테스트되지 않음)도 구성 할 수 있습니다.
(3) @RichHomolka의 제안 networksetup --enableuserprofile
은 OS X 10.7에서 더 이상 사용되지 않습니다 (다른 버전에서는 테스트되지 않음).
(4) 위의 절차를 따르는 사람이 문제를 겪는 경우 의견이나 별도의 답변으로 문제를 해결할 수 있습니까?