PowerShell에서 IPv4 주소 가져오는 방법
-
Get-NetIPAddress
를 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기 -
Get-NetIPConfiguration
을 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기 -
Dns class
를 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기 -
Get-WmiObject
를 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기 -
Test-Connection
을 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기 -
Get-CimInstance
를 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기 - 결론

시스템 관리자는 PowerShell에서 다양한 작업을 수행할 수 있으며, 여기에는 네트워킹 작업이 포함됩니다.
예를 들어, PowerShell을 사용하면 IP 주소 및 IP 구성을 나열하고 컴퓨터에 핑을 보내고 네트워크 어댑터 속성을 검색하고 DHCP 구성 작업을 수행하며 네트워크 공유를 생성/삭제할 수 있습니다.
IP는 인터넷 프로토콜을 의미하며, v4는 버전 사대를 의미합니다.
IPv4 주소는 머신의 네트워크 인터페이스를 식별하는 32비트 정수입니다. 이는 점-십진수 표기법으로 표현됩니다.
점으로 구분된 네 개의 8비트 필드가 있으며, 각 8비트 필드는 IPv4 주소의 바이트를 나타냅니다. 이 튜토리얼에서는 PowerShell에서 IPv4 주소를 변수에 저장하는 방법을 배웁니다.
Get-NetIPAddress
를 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기
Get-NetIPAddress
cmdlet은 IPv4 주소, IPv6 주소 및 주소와 관련된 IP 인터페이스와 같은 IP 주소 구성을 가져옵니다.
매개 변수를 지정하지 않고 실행하면 컴퓨터의 전체 IP 주소 구성을 출력합니다.
--AddressFamily
매개 변수는 IP 주소 패밀리의 배열을 지정하는 데 사용됩니다. Get-NetIPAddress
는 이 매개 변수를 사용하여 주소 패밀리와 일치하는 IP 주소 구성을 가져옵니다.
허용되는 값은 IPv4
및 IPv6
입니다.
예를 들어, 아래 명령은 컴퓨터의 모든 IPv4 주소에 대한 IP 주소 구성 정보를 가져옵니다.
Get-NetIPAddress -AddressFamily IPv4
이 명령은 컴퓨터의 IPv4
주소만 가져옵니다.
(Get-NetIPAddress | Where-Object { $_.AddressState -eq "Preferred" -and $_.ValidLifetime -lt "24:00:00" }).IPAddress
제공된 코드 스니펫에서는 Get-NetIPAddress
cmdlet을 사용하여 IP 주소 데이터를 수집하고, Where-Object
cmdlet을 사용하여 중괄호로 캡슐화된 특정 기준에 따라 결과를 필터링합니다. Where-Object
블록 내의 조건은 -eq
및 -lt
비교 연산자로 표시되며, 각각 Preferred
상태의 IP 주소와 유효 기간이 24시간 미만인 IP 주소를 대상으로 합니다.
필터링된 결과의 IPAddress
속성에 접근함으로써, 우리는 설정된 조건을 충족하는 IPv4 주소를 분리하여 표시합니다. 이 간결한 분석은 PowerShell에서 각 cmdlet이 데이터를 효율적으로 처리하여 정제된 출력을 생성하는 파이프라인 기반 접근 방식의 특징을 강조합니다.
출력:
다음 명령을 사용하여 PowerShell에서 IPv4 주소를 가져올 수도 있습니다.
Get-NetIPAddress -AddressFamily IPv4 -InterfaceIndex $(Get-NetConnectionProfile | Select-Object -ExpandProperty InterfaceIndex) | Select-Object -ExpandProperty IPAddress
제공된 코드 예제에서는 Get-NetIPAddress
cmdlet을 사용하여 IP 주소 정보를 가져옵니다. -AddressFamily IPv4
를 지정하여 결과를 IPv4 주소로 제한합니다.
-InterfaceIndex
매개 변수는 Get-NetConnectionProfile
을 사용하여 검색된 인터페이스 인덱스로 채워져 현재 네트워크 연결과 관련된 IP 주소를 가져옵니다. 마지막으로, Select-Object -ExpandProperty IPAddress
를 사용하여 출력에서 IP 주소를 추출하여 표시합니다.
출력:
Get-NetIPConfiguration
을 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기
Get-NetIPConfiguration
cmdlet은 Windows 시스템에서 IP 주소 정보를 검색하는 강력한 도구입니다. 이 방법은 IPv4 및 IPv6 주소, 서브넷 마스크, 기본 게이트웨이 및 네트워크 어댑터 상태와 같은 IP 구성에 대한 포괄적인 데이터를 제공하여 관리 및 스크립팅 작업을 지원합니다.
예:
(Get-NetIPConfiguration | Where-Object { $_.IPv4DefaultGateway -ne $null -and $_.NetAdapter.status -ne "Disconnected" }).IPv4Address.IPAddress
제공된 코드 스니펫에서는 Get-NetIPConfiguration
cmdlet을 사용하여 IP 주소 정보를 수집하고, 다시 Where-Object
cmdlet을 사용하여 중괄호로 캡슐화된 특정 기준에 따라 결과를 필터링합니다. Where-Object
블록 내 조건은 -ne
비교 연산자로 표시되어 비어 있지 않은 IPv4 기본 게이트웨이는 보유하고 있으며 Disconnected
상태가 아닌 네트워크 어댑터 구성을 대상으로 합니다.
필터링된 결과의 IPAddress
속성에 접근함으로써, 우리는 설정된 기준을 충족하는 IPv4 주소를 분리하여 표시합니다. 이 간결한 분석은 PowerShell 파이프라인의 능력이 데이터를 효율적으로 처리할 수 있게 하여, 네트워크 구성 및 문제 해결 작업에 도움을 주는 정제된 출력을 생성하는 방식입니다.
출력:
Dns class
를 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기
Dns class
는 인터넷 도메인 이름 시스템(DNS)에서 특정 호스트에 대한 정보를 가져오는 정적 클래스입니다. GetHostAddresses
메서드는 지정된 호스트에 대한 IP 주소를 반환합니다.
이 접근 방법은 Get-NetIPConfiguration
또는 Get-NetIPAddress
와 같은 cmdlet에 직접 접근할 수 없거나 적합하지 않은 환경에서 특히 유용할 수 있습니다.
예:
([System.Net.DNS]::GetHostAddresses($env:computername) | Where-Object { $_.AddressFamily -eq "InterNetwork" } | Select-Object IPAddressToString)[0].IPAddressToString
제공된 코드 예제에서는 $env:computername
으로 지정된 로컬 컴퓨터와 연관된 IP 주소를 검색하기 위해 [System.Net.DNS]::GetHostAddresses
를 사용합니다. 그런 다음 Where-Object
를 사용하여 결과를 필터링하여 IPv4 주소만 선택합니다(AddressFamily -eq "InterNetwork"
).
그 다음 Select-Object IPAddressToString
을 사용하여 IP 주소를 문자열 표현으로 추출합니다. 마지막으로, [0].IPAddressToString
은 결과에서 첫 번째 IP 주소를 선택하고 문자열로 표시합니다.
출력:
Get-WmiObject
를 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기
Get-WmiObject
cmdlet은 Windows Management Instrumentation(WMI) 클래스의 인스턴스나 사용 가능한 WMI 클래스에 대한 정보 가져옵니다.
Win32_NetworkAdapterConfiguration
은 네트워크 어댑터의 속성과 동작을 나타내는 WMI 클래스입니다.
예:
(Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object { $_.DHCPEnabled -ne $null -and $_.DefaultIPGateway -ne $null }).IPAddress | Select-Object -First 1
제공된 코드 스니펫에서는 Get-WmiObject
를 사용하여 Win32_NetworkAdapterConfiguration
클래스를 조회하고 네트워크 어댑터 구성 세부 정보를 검색합니다. 그런 다음 DHCP가 활성화되고 기본 게이트웨이가 지정된 구성을 선택하기 위해 Where-Object
필터를 적용합니다.
이렇게 하면 활성 네트워크 연결과 연결된 IP 주소를 검색합니다. 마지막으로, Select-Object -First 1
을 사용하여 결과에서 첫 번째 IP 주소를 선택합니다.
출력:
Test-Connection
을 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기
Test-Connection
cmdlet은 하나 이상의 컴퓨터에 ICMP 에코 요청 패킷, 즉 핑을 보내고 에코 응답을 반환합니다. 또한 특정 컴퓨터가 IP 네트워크를 통해 연락이 가능한지 여부를 확인할 수 있습니다.
예:
(Test-Connection -ComputerName (hostname) -Count 1 | select -ExpandProperty IPv4Address).IPAddressToString
제공된 코드 예제에서는 (hostname)
로 지정된 원격 호스트에 핑을 보내고 네트워크 관련 정보를 검색하기 위해 Test-Connection
을 사용합니다. -Count 1
매개 변수는 타깃 컴퓨터에 단일 에코 요청만 전송하도록 하여 네트워크 트래픽을 최소화합니다.
그런 다음 Select-Object -ExpandProperty IPv4Address
를 사용하여 출력에서 원격 호스트의 IPv4 주소를 추출하고 표시합니다.
가상 어댑터가 있는 경우, 가상 어댑터의 IPv4 주소(예: VPN, Hyper-V, Docker)를 반환합니다.
출력:
위와 같은 출력을 반환하는 다음 명령을 사용할 수도 있습니다.
(Test-Connection -ComputerName $env:computername -Count 1).IPv4Address.IPAddressToString
제공된 코드 예제에서는 $env:computername
으로 지정된 로컬 시스템에 핑을 보내고 네트워크 관련 정보를 검색하기 위해 Test-Connection
을 사용합니다. -Count 1
을 지정함으로써 로컬 시스템에 단일 핑 요청을 전송하여 네트워크 트래픽을 최소화합니다.
그런 다음 출력 객체의 IPv4Address
속성에 접근하고 IPAddressToString
속성을 통해 IPv4 주소를 문자열로 검색합니다.
출력:
Get-CimInstance
를 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기
Get-CimInstance
cmdlet은 Windows Management Instrumentation(WMI) 리포지토리에서 정보를 검색하는 강력한 접근 방식을 제공합니다. 관리자가 네트워크 어댑터 구성을 쉽게 쿼리할 수 있도록 합니다. Win32_NetworkAdapterConfiguration
CIM 클래스를 대상으로 하여, 이 방법은 사용자가 IP 주소, 서브넷 마스크, 기본 게이트웨이 등을 포함한 네트워크 설정에 대한 포괄적인 세부 정보를 얻을 수 있게 합니다.
예:
(Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration | Where-Object { $_.IPAddress -ne $null }).IPAddress[0]
제공된 코드 예제에서는 Get-CimInstance
를 사용하여 Win32_NetworkAdapterConfiguration
CIM 클래스를 쿼리하고 네트워크 어댑터 구성에 대한 정보를 검색합니다. Where-Object
cmdlet은 IPAddress
속성이 null이 아닌 구성을 선택하도록 결과를 필터링합니다. 이는 할당된 IP 주소가 있는 네트워크 어댑터 구성만 반환되도록 보장합니다.
[0]
인덱스에 접근하여 결과 세트에서 첫 번째 IP 주소를 선택할 수 있으며, 이는 여러 네트워크 어댑터나 주소를 다룰 때 유용할 수 있습니다. 이 접근은 관리자가 시스템과 관련된 기본 IP 주소를 효과적으로 검색할 수 있는 간결한 방법을 제공합니다.
출력:
결론
이 기사에서는 PowerShell에서 IPv4 주소를 검색하는 다양한 방법을 탐구하면서 PowerShell 에코 시스템에서 사용 가능한 다양한 cmdlet 및 클래스를 활용했습니다. Get-NetIPAddress
로 시작하여 특정 필터링 옵션을 사용하여 IP 주소 정보를 가져오는 방법을 배우고, 이어서 Windows 시스템에서 IP 구성에 대한 포괄적인 데이터를 제공하는 Get-NetIPConfiguration
을 살펴보았습니다.
또한 cmdlet에 직접 접근할 수 없는 시나리오를 위해 Dns
클래스를 사용하는 방법을探讨했습니다. 그리고 Get-WmiObject
를 사용하여 WMI를 통해 네트워크 어댑터 구성 정보를 쿼리하고, Test-Connection
을 통해 원격 호스트에 핑을 보내 IP 주소 세부 정보를 수집하는 방법을 살펴보았습니다.
마지막으로, WMI 리포지토리에서 네트워크 어댑터 구성을 효율적으로 검색하기 위해 Get-CimInstance
를 활용하는 방법을 다루었습니다. 각 방법은 제가 지닌 독특한 장점을 제공하며, 네트워크 관리 및 문제 해결 작업에서 다양한 사용 사례 및 시나리오를 충족합니다.