PowerShell에서 IPv4 주소 가져오는 방법

  1. Get-NetIPAddress를 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기
  2. Get-NetIPConfiguration을 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기
  3. Dns class를 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기
  4. Get-WmiObject를 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기
  5. Test-Connection을 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기
  6. Get-CimInstance를 사용하여 PowerShell에서 IPv4 주소를 변수에 저장하기
  7. 결론
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 주소 구성을 가져옵니다.

허용되는 값은 IPv4IPv6입니다.

예를 들어, 아래 명령은 컴퓨터의 모든 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이 데이터를 효율적으로 처리하여 정제된 출력을 생성하는 파이프라인 기반 접근 방식의 특징을 강조합니다.

출력:

파워셸 IP 주소 가져오기 - 출력 1

다음 명령을 사용하여 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 주소를 추출하여 표시합니다.

출력:

파워셸 IP 주소 가져오기 - 출력 2

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 파이프라인의 능력이 데이터를 효율적으로 처리할 수 있게 하여, 네트워크 구성 및 문제 해결 작업에 도움을 주는 정제된 출력을 생성하는 방식입니다.

출력:

파워셸 IP 주소 가져오기 - 출력 3

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 주소를 선택하고 문자열로 표시합니다.

출력:

파워셸 IP 주소 가져오기 - 출력 4

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 주소를 선택합니다.

출력:

powershell IP 주소 가져오기 - 출력 5

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)를 반환합니다.

출력:

파워셸 IP 주소 가져오기 - 출력 6

위와 같은 출력을 반환하는 다음 명령을 사용할 수도 있습니다.

(Test-Connection -ComputerName $env:computername -Count 1).IPv4Address.IPAddressToString

제공된 코드 예제에서는 $env:computername으로 지정된 로컬 시스템에 핑을 보내고 네트워크 관련 정보를 검색하기 위해 Test-Connection을 사용합니다. -Count 1을 지정함으로써 로컬 시스템에 단일 핑 요청을 전송하여 네트워크 트래픽을 최소화합니다.

그런 다음 출력 객체의 IPv4Address 속성에 접근하고 IPAddressToString 속성을 통해 IPv4 주소를 문자열로 검색합니다.

출력:

파워셸 IP 주소 가져오기 - 출력 7

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 IP 주소 가져오기 - 출력 8

결론

이 기사에서는 PowerShell에서 IPv4 주소를 검색하는 다양한 방법을 탐구하면서 PowerShell 에코 시스템에서 사용 가능한 다양한 cmdlet 및 클래스를 활용했습니다. Get-NetIPAddress로 시작하여 특정 필터링 옵션을 사용하여 IP 주소 정보를 가져오는 방법을 배우고, 이어서 Windows 시스템에서 IP 구성에 대한 포괄적인 데이터를 제공하는 Get-NetIPConfiguration을 살펴보았습니다.

또한 cmdlet에 직접 접근할 수 없는 시나리오를 위해 Dns 클래스를 사용하는 방법을探讨했습니다. 그리고 Get-WmiObject를 사용하여 WMI를 통해 네트워크 어댑터 구성 정보를 쿼리하고, Test-Connection을 통해 원격 호스트에 핑을 보내 IP 주소 세부 정보를 수집하는 방법을 살펴보았습니다.

마지막으로, WMI 리포지토리에서 네트워크 어댑터 구성을 효율적으로 검색하기 위해 Get-CimInstance를 활용하는 방법을 다루었습니다. 각 방법은 제가 지닌 독특한 장점을 제공하며, 네트워크 관리 및 문제 해결 작업에서 다양한 사용 사례 및 시나리오를 충족합니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website