/proc에서 인터페이스의 IPV4 주소를 얻는 방법

/proc에서 인터페이스의 IPV4 주소를 얻는 방법

/proc네트워크 인터페이스의 MAC 주소를 얻는 방법과 유사하게 네트워크 인터페이스의 IP 주소를 얻는 명확하고 간단한 방법이 있습니까 ? 이상적으로는 cat을 입력하여 IPv4 주소를 가져오는
것이 좋습니다 ./proc/<foo>/{interface_name}

차라리 다른 것을 실행하지 않겠습니다 cat.

답변1

/proc디렉토리에서는 다음 위치의 전달 정보 기본 테이블에서 IPv4 주소를 찾을 수도 있습니다./proc/net/fib_trie

테이블은 cat처음 Main:에는 이해하기 매우 쉽습니다.Local:

cat /proc/net/fib_trie

또는 네트워크, IP 주소 및 넷마스크를 확인하세요.

cat /proc/net/fib_trie | grep "|--"   | egrep -v "0.0.0.0| 127."
       |-- 193.136.1.0
       |-- 193.136.1.2
    |-- 193.136.1.255
       |-- 193.136.1.0
       |-- 193.136.1.2
    |-- 193.136.1.255       

답변2

$ awk '/32 host/ { print f } {f=$2}' <<< "$(</proc/net/fib_trie)"

답변3

네트워크 주소는 /proc/net/fib_trie다음의 인터페이스와 연결될 수 있습니다 /proc/net/route.

  $ awk '/^[^I]/ {print $1 " " $2}' /proc/net/route
  br0 0001020A
  br0 FE01020A

..다음을 사용하여 16진수 네트워크 주소를 변환합니다.

$ echo FE01020A | xxd -r -p | hexdump -e '/1 "%u."' | tac -s'.' | sed 's/\.$//'
10.2.1.254

답변4

echo $'g/32 host LOCAL/-1s/\s*|-- //p\n Q'|ed -s /proc/net/fib_trie

10.0.0.20
127.0.0.1
192.168.122.1

관련 정보