/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