답변:
ipconfig getifaddr en1
무선 또는 ipconfig getifaddr en0
이더넷에 사용하십시오 .
업데이트 :
ipconfig getifaddr en0
wifi 인터페이스의 기본값입니다.
ifconfig
는 모든 인터페이스와 IP를 보여줍니다
curl -s http://checkip.dyndns.org/ | sed 's/[a-zA-Z<>/ :]//g'
다음은 10.8 및 10.10 요세미티에서 작동합니다.
ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}'
위의 답변이 둘 이상인 경우 다음을 스크립트에 저장하고 대신 실행하십시오.
#!/usr/bin/env bash
dumpIpForInterface()
{
IT=$(ifconfig "$1")
if [[ "$IT" != *"status: active"* ]]; then
return
fi
if [[ "$IT" != *" broadcast "* ]]; then
return
fi
echo "$IT" | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}'
}
main()
{
# snagged from here: https://superuser.com/a/627581/38941
DEFAULT_ROUTE=$(route -n get 0.0.0.0 2>/dev/null | awk '/interface: / {print $2}')
if [ -n "$DEFAULT_ROUTE" ]; then
dumpIpForInterface "$DEFAULT_ROUTE"
else
for i in $(ifconfig -s | awk '{print $1}' | awk '{if(NR>1)print}')
do
if [[ $i != *"vboxnet"* ]]; then
dumpIpForInterface "$i"
fi
done
fi
}
main
curl ifconfig.me
터미널에 입력 하십시오.
ipconfig getifaddr en0
로컬 IP 용입니다.
다음을 수행 할 수 있습니다.
ifconfig
또는을 입력하십시오 ifconfig -a
. 이 명령은 인터페이스 목록과 해당 IP 및 MAC 주소 (해당되는 경우에만)를 표시합니다. 특정 인터페이스 만 입력 ifconfig en0
하거나 ifconfig en1
구성 할 수 있습니다 (누군가 답변에서 말했듯이 en0은 일반적으로 유선 이더넷이고 en1은 WiFi 인터페이스 임).
대안으로, netstat -i
모든 인터페이스를 나열하고 각 인터페이스에 할당 한 IP 주소를 표시합니다.
일반적으로 상자에서 SSH 데몬을 실행하면 사용 가능한 모든 인터페이스, 즉 수신 대기합니다. SSH를 통해 해당 시스템에 연결하기 위해 시스템에 구성된 모든 IP 주소를 사용할 수 있습니다 (방화벽 규칙에 따라 달라짐). OS가 기본 인터페이스 및 기본 IP 주소를 호출 한 후 다음 scutil
과 같은 명령을 사용할 수 있습니다 .
MacBook:~ scutil
> show State:/Network/Global/IPv4
<dictionary> {
PrimaryInterface : en0
PrimaryService : C0550F84-5C07-484F-8D62-C8B90DC977D8
Router : 10.103.4.1
}
> show State:/Network/Interface/en0/IPv4
<dictionary> {
Addresses : <array> {
0 : 10.103.4.234
}
BroadcastAddresses : <array> {
0 : 10.103.4.255
}
SubnetMasks : <array> {
0 : 255.255.255.0
}
}
위의 내용은 명령 행 명령이지만 대화식이기도합니다 (따라서 scutil
자체 명령을 실행 한 후 입력하십시오). 첫 번째 show
명령은 기본 라우터의 IP 주소뿐만 아니라 OS의 기본 인터페이스 이름 (시스템 기본 설정 / 네트워크 기본 설정 창의 목록 맨 위에있는 이름)을 알려줍니다. 두 번째 show
명령은 State:/Network/Interface/<ifname>/IPv4
인수 (이 경우 en0
)를 사용하여 할당 된 IP 주소를 제공합니다. Addresses 배열에서 주소를 찾고 있는데 다른 두 항목은 브로드 캐스트 주소와 넷 마스크입니다.
도움이 되길 바라지 만, 확실하지 않은 경우 알려주세요.
echo "show State:/Network/Interface/$(echo 'show State:/Network/Global/IPv4' | scutil | grep 'PrimaryInterface ' | sed 's/ PrimaryInterface : //')/IPv4" | scutil | pcregrep -Mo1 " Addresses : <array> {\n 0 : ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})"
인터넷을 향한 컴퓨터의 IP 주소를 얻으려면 다음과 같이 작업하십시오.
if=`netstat -nr | awk '{ if ($1 ~/default/) { print $6} }'`
ifconfig ${if} | awk '{ if ($1 ~/inet/) { print $2} }'
여러 인터페이스가 활성화되어 있어도 인터페이스가 있어도 어떤 인터페이스가 실제로 기본 게이트웨이인지 알 수 없습니다.
192.168.0.*)
인터넷에 노출 된 외부 주소가 아님)
netstat -nr | grep default
있습니까?
기록을 위해 외부 IP 주소를 제공하는 다음 내용으로 bash 스크립트를 만들 수 있습니다
#!/bin/bash
wget -qO - http://ipecho.net/plain; echo
wget
으로 macOS의 일부가 아니며 Apple 이외의 소스에서 설치해야합니다.
curl -s http://ipecho.net/plain; echo