본문 바로가기
개발환경

[Ubuntu] IP 주소로 device name 검색하는 방법 (feat. python)

by codingwalks 2025. 1. 16.
728x90
반응형

 

 

안녕하세요. 코딩산책입니다.

Ubuntu를 사용하다 보면 네트워크 설정 문제를 해결하거나 특정 디바이스 정보를 확인하기 위해 자신의 IP 주소와 네트워크 디바이스 이름을 확인해야 할 때가 있습니다. IP Scanner 앱을 검색하면 설치하여 사용하는 애플리케이션이 있지만, 이 글에서는 터미널 명령어와 Python을 사용해 IP 주소와 디바이스 이름을 확인하는 방법을 알아보겠습니다.


1. ip 명령어를 사용하여 확인

Ubuntu에서 IP 주소와 네트워크 디바이스 이름을 확인하는 가장 일반적인 방법은 ip 명령어를 사용하는 것입니다.

ip addr

이 명령을 실행하면, 시스템의 네트워크 인터페이스와 관련된 정보가 출력됩니다. 주요 내용은 다음과 같습니다:

  • 인터페이스 이름: lo, eth0, wlan0 등 네트워크 디바이스의 이름.
  • IP 주소: 각 디바이스에 할당된 IPv4 및 IPv6 주소.

예시 출력:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:0e:8c:1d brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic enp0s3
       valid_lft 86377sec preferred_lft 86377sec

위 출력에서:

  • enp0s3는 디바이스 이름.
  • 192.168.1.100은 할당된 IPv4 주소.

2. ifconfig 명령어를 사용하여 확인

ifconfig는 예전부터 사용된 명령어로, 여전히 많이 사용됩니다. 하지만 최신 Ubuntu 버전에서는 기본적으로 설치되어 있지 않을 수 있으므로 필요하면 설치해야 합니다.

sudo apt update
sudo apt install net-tools

설치 후 명령어를 실행합니다:

ifconfig

예시 출력:

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::a00:27ff:fe0e:8c1d  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:0e:8c:1d  txqueuelen 1000  (Ethernet)
        RX packets 2000  bytes 1560000 (1.5 MB)
        TX packets 1500  bytes 1200000 (1.2 MB)

3. nslookup 명령어를 사용하여 확인

nslookup 명령어는 특정 도메인 이름에 대한 IP 주소를 확인하거나, IP 주소를 기반으로 도메인 이름을 역조회하는 데 사용할 수 있습니다. 네트워크 연결 상태를 확인할 때 유용합니다.

  • 특정 도메인의 IP 주소 확인:
nslookup example.com

예시 출력:

Server:         192.168.1.1
Address:        192.168.1.1#53

Non-authoritative answer:
Name:   example.com
Address: 93.184.216.34
  • IP 주소로 도메인 이름 확인 (역조회):
nslookup 8.8.8.8

예시 출력:

Server:         192.168.1.1
Address:        192.168.1.1#53

Non-authoritative answer:
8.8.8.8.in-addr.arpa   name = dns.google.

nslookup은 네트워크 디버깅이나 DNS 설정 문제를 확인할 때도 유용하게 사용할 수 있습니다.


4. nslookup 명령어로 쉘 스크립트 사용하여 확인

nslookup 명령어으로 얻은 결과를 정규 표현식을 사용해 파싱하여 디바이스 이름만 추출하는 스크립트를 만들어 보도록 하겠습니다.

nslookup 192.168.1.1 | grep "name =" | cut -d '=' -f2 | cut -d '.' -f1 | tr -d ' '

 

  • grep : "name ="라는 문자열이 포함된 라인만 추출
  • cut -f1 : "." 문자를 기준으로 첫 번째 필드만 추출
  • cut -f2 : "=" 문자를 기준으로 두 번째 필드만 추출
  • tr : 모든 공백을 제거

5. Python에서 nslookup 명령어를 사용하여 확인

Python에서 nslookup 명령으로 얻은 결과를 정규 표현식을 사용해 디바이스 이름을 얻기 위해서는 문자열 처리를 해야 합니다.

import subprocess
import re

result = subprocess.check_output(['nslookup', '192.168.1.1']).decode('utf-8')
pattern = r"name\s*=\s*(\S+)."
match = re.search(pattern, result)
print(match.group(1))

 


Ubuntu에서 IP 주소와 네트워크 디바이스 이름을 확인하는 방법은 다양합니다. 상황에 맞게 ip 명령어, ifconfig, nslookup, 또는 쉘 스크립트나 Python 프로그래밍을 사용하는 방법을 선택하여 사용하시면 됩니다.

 

해당 포스트가 유용하셨다면 하단의 좋아요와 구독하기 부탁드립니다. ^^

Buy me a coffee

 

[Codingwalks]에게 송금하기 - AQR

[Codingwalks]에게 송금하기 - AQR

aq.gy

728x90
반응형