내 라우터의 IP 주소를 표시하는 방법은 무엇입니까?

내 라우터의 IP 주소를 표시하는 방법은 무엇입니까?

내 라우터의 IP 주소만 얻으려면 어떤 명령을 실행할 수 있나요?

이 명령을 사용하면 예를 들어 전체 라우팅 테이블이 아닌 내 라우터의 IP만 가져야 합니다(를 실행할 때와 같이 route -n).

답변1

한 줄짜리:

  • nm-tool | grep -i gateway | xargs echo | cut -d' ' -f2
  • nm-tool | grep -i gateway | awk '{print $2}
  • netstat -nr | awk '$1 == "0.0.0.0"{print$2}'
  • arp -n | awk '{print $1}'참고: 귀하의 컴퓨터가 네트워크에 있는 유일한 컴퓨터인 경우에만 작동합니다.
  • ip route show | grep -i 'default via'| awk '{print $3 }'

출력: 192.168.0.1나를 위해

메모:

15.04 이상에서는 가 없으므로 를 nm-tool사용하세요 nmcli dev show <IFACE>. 예를 들어,

$ nmcli dev show wlan7 | grep GATEWAY                                                                                    
IP4.GATEWAY:                            192.168.0.1
IP6.GATEWAY:                            

수정 사항 및 추가 정보

명령을 검토하면 알 수 있듯이 nm-tool(참고로 NetworkManager에서 정보를 가져옴) 출력을 가져와서 단어가 포함된 줄을 찾고 gateway, 에코(공백으로 구분)를 사용하여 정보를 인쇄한 다음 해당 전체의 두 번째 항목만 잘라냅니다. 산출. 두 개 이상의 연결이 있는 경우 상단 xargs echo | cut -d' ' -f2부품을 제거하고 awk '{print $2}'; 즉, 전체 라인은 다음과 같습니다 nm-tool | grep -i gateway | awk '{print $2}'. 또는 nm-tool | grep -oP '(?i)gateway:\s*\K\S+'의견에서 Avinash Raj가 제안한 대로 사용할 수도 있습니다 . 보시다시피 여기서는 특별한 작업이 수행되지 않았으며 여기의 전체 시련은 단지 cut, awk 및 grep과 같은 출력 편집 도구를 사용하는 연습일 뿐입니다.

게이트웨이 정보를 얻는 또 다른 방법은 nmcli dev list(예, 여전히 네트워크 관리자에 의존) 명령을 이용하는 것입니다. nmcli네트워크 관리자의 명령줄 버전입니다. 당신은 달릴 수도 nmcli dev list | grep -i routers있고 달릴 수도 있습니다 nmcli dev list | grep -i 'gw ='. 원하는 경우 원하는 IP 주소를 제외한 다른 모든 정보를 잘라내는 연습을 다시 할 수 있습니다.

원래 질문에서 유일한 사양은 기본 게이트웨이만 인쇄하는 것이었으므로 여기서는 nm-tool의 출력에 의존합니다. NetworkManager는 기본적으로 Ubuntu와 함께 제공되며 이는 Ubuntu의 네트워크 연결을 관리하는 표준 방법입니다. wicd와 같은 다른 것을 사용하거나 wpa_cli를 통해 연결하는 경우 nm-tool은 답변을 제공하지 않습니다. 그러한 경우에는 다른 사람들의 답변이 더 유용할 수 있습니다.

보다 배포 중립적이고 구성 중립적인 옵션은 netstat -n와 유사한 커널 라우팅 테이블을 사용하는 를 사용하는 것입니다 route -n. 출력은 다음과 같습니다. 놀라운 것은 없습니다.

  Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

원하는 정보를 잘라내는 방법은 다음과 같습니다.netstat -nr | awk '$1 == "0.0.0.0"{print$2}'

또 다른 하나는 중립적입니다.arp -n | awk '{print $1}'

답변2

다양한 방법으로 찾을 수 있어요

ip route show default

더 나은 질문은 무엇을 또는 ​​어떻게 출력을 형성하고 싶습니까?

ip route show | awk '/default/ {print $3}'

tracepath -m 1 8.8.8.8 | awk '/1:/ {print $2}' | uniq

댓글에서 -(Avinash Raj에게 감사드립니다 0

tracepath -m 1 8.8.8.8 | awk '/1:/ {print $2;exit}'

답변3

일반적으로 를 사용하는 것처럼 이 솔루션을 다음과 함께 route -n사용해 볼 수 있습니다 .sedroute -n

route -n | sed -nr 's/(0\.0\.0\.0) +([^ ]+) +\1.*/\2/p' 

다음은 테스트입니다.

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.0.0     0.0.0.0         255.255.240.0   U     0      0        0 eth0

$ route -n | sed -nr 's/(0\.0\.0\.0) +([^ ]+) +\1.*/\2/p' 
192.168.1.1

또 다른 방법은 다음을 사용하는 것입니다 grep.

$ route -n | tr -s ' ' | grep -Po "(?<=0\.0\.0\.0 )[^ ]+(?= 0\.0\.0\.0)"
192.168.1.1

@AvinashRaj가 지적했듯이 이는 다음을 사용하여 수행할 수 있습니다 grep( 를 사용하여 공백을 줄일 필요 없음 tr).

route -n | grep -Po "0\.0\.0\.0\s*\K\S+(?=\s*0\.0\.0\.0)"
192.168.1.1

답변4

시스템에서 웹 브라우저에 액세스할 수 있는 경우 다음으로 이동할 수 있습니다.http://whatsmyrouterip.com/그리고 어떤 명령 없이도 귀하의 IP를 찾을 수 있어야 합니다.

그렇지 않으면 단순히 터미널을 열고 다음을 수행하는 것만으로도 ip route | grep default충분합니다. 네트워크 인터페이스에 따라 둘 이상을 제공할 수도 있습니다.

관련 정보