명령 행에서 내 IP 주소를 어떻게 찾습니까? 수 있다는 것을 알고 ifconfig

나는 당신이 할 수 있다는 것을 알고 ifconfig | grep inet있지만, 그것은 당신에게 여러 IPv4 주소를 보여줍니다. SSHing et al에 대한 특정 것을 어떻게 얻습니까?



답변

ipconfig getifaddr en1무선 또는 ipconfig getifaddr en0이더넷에 사용하십시오 .

업데이트 :

ipconfig getifaddr en0 wifi 인터페이스의 기본값입니다.


답변

다음은 10.8 및 10.10 요세미티에서 작동합니다.

ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}' 

위의 답변이 둘 이상인 경우 다음을 스크립트에 저장하고 대신 실행하십시오.

ip_address.sh

#!/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터미널에 입력 하십시오.


답변

잦은 IP 조회를 위해 .aliases 도트 파일 에이 설정이 있습니다.

alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
alias localip="ipconfig getifaddr en0"

답변

다음을 수행 할 수 있습니다.

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 배열에서 주소를 찾고 있는데 다른 두 항목은 브로드 캐스트 주소와 넷 마스크입니다.

도움이 되길 바라지 만, 확실하지 않은 경우 알려주세요.


답변

인터넷을 향한 컴퓨터의 IP 주소를 얻으려면 다음과 같이 작업하십시오.

if=`netstat -nr | awk '{ if ($1 ~/default/) { print $6} }'`
ifconfig ${if} | awk '{ if ($1 ~/inet/) { print $2} }'

여러 인터페이스가 활성화되어 있어도 인터페이스가 있어도 어떤 인터페이스가 실제로 기본 게이트웨이인지 알 수 없습니다.


답변

기록을 위해 외부 IP 주소를 제공하는 다음 내용으로 bash 스크립트를 만들 수 있습니다

#!/bin/bash    
wget -qO - http://ipecho.net/plain; echo