PowerShell là công cụ quản trị mạnh mẽ tích hợp sẵn trong Windows, cho phép bạn truy xuất thông tin hệ thống bao gồm địa chỉ IP một cách linh hoạt. Việc nắm vững cách xem địa chỉ ip bằng powershell không chỉ giúp bạn kiểm tra cấu hình mạng nội bộ mà còn hỗ trợ xử lý sự cố kết nối, quản trị từ xa hay viết script tự động hóa. Nếu bạn đang tìm kiếm một phương pháp thay thế cho lệnh ipconfig truyền thống, PowerShell mang đến nhiều tùy chọn với đầu ra có cấu trúc dễ phân tích hơn. Trong bài viết này, chúng ta sẽ khám phá từng lệnh cụ thể, cách đọc kết quả và các mẹo thực tế giúp bạn làm chủ thao tác này.
PowerShell là gì và tại sao nên dùng để xem địa chỉ IP

PowerShell là môi trường dòng lệnh (CLI) và ngôn ngữ kịch bản do Microsoft phát triển, thay thế cho Command Prompt (CMD) với khả năng xử lý đối tượng thay vì văn bản thuần. Khi thực hiện cách xem địa chỉ ip bằng powershell, bạn nhận được dữ liệu dạng đối tượng có thuộc tính, giúp lọc, sắp xếp và xuất dữ liệu dễ dàng hơn.
So với ipconfig, PowerShell cung cấp thông tin chi tiết hơn về từng giao diện mạng, bao gồm địa chỉ IPv4, IPv6, gateway, DNS và trạng thái kết nối. Nhờ đó, người dùng có thể trích xuất chính xác thông tin cần thiết mà không phải đọc toàn bộ bảng kết quả dài dòng. Đặc biệt, trong môi trường doanh nghiệp, việc viết script PowerShell để thu thập IP hàng loạt trên nhiều máy là giải pháp tối ưu.
Phân loại địa chỉ IP cần xem bằng PowerShell
Trước khi thực hành, cần phân biệt hai loại địa chỉ IP chính:
- Địa chỉ IP private (nội bộ): Là IP được cấp cho card mạng trong mạng LAN, thường có dạng 192.168.x.x, 10.x.x.x hoặc 172.16-31.x.x. Đây là IP mà máy tính của bạn dùng để giao tiếp với các thiết bị khác trong cùng mạng.
- Địa chỉ IP public (WAN): Là IP do nhà cung cấp dịch vụ Internet (ISP) cấp cho router/modem, đại diện cho thiết bị của bạn trên Internet. PowerShell không thể lấy trực tiếp IP public từ card mạng nội bộ mà cần truy vấn dịch vụ bên ngoài.
- Mở PowerShell với quyền Administrator hoặc User thông thường (một số thông tin yêu cầu quyền admin).
- Gõ lệnh:
Get-NetIPAddress - Kết quả trả về bao gồm InterfaceAlias (tên card mạng), IPAddress, PrefixLength (subnet mask dạng CIDR), AddressFamily (IPv4/IPv6).
- ifconfig.me
- ipify.org
- checkip.amazonaws.com
- Lợi ích: Dữ liệu có cấu trúc, dễ lọc, xuất ra file CSV/XML, hỗ trợ pipeline, tích hợp trong script tự động, có thể chạy từ xa.
- Hạn chế: Một số lệnh yêu cầu quyền Administrator (đặc biệt khi truy cập chi tiết adapter ẩn), cần phiên bản Windows có module NetTCPIP (có sẵn từ Windows 8/Server 2012 trở lên).
- Không phân biệt địa chỉ IP private và public: Nhiều người dùng gõ Get-NetIPAddress và nghĩ đó là IP Internet, trong khi thực tế đó chỉ là IP nội bộ. Cần dùng thêm lệnh truy vấn dịch vụ ngoài.
- Quên tham số -AddressFamily: Kết quả trả về có thể bao gồm cả IPv4 và IPv6 dẫn đến danh sách dài, khó đọc.
- Chạy lệnh không đúng quyền: Khi không mở PowerShell với quyền Administrator, một số adapter ảo hoặc thông tin chi tiết có thể bị ẩn.
- Nhầm lẫn giữa InterfaceAlias và InterfaceIndex: Một số người dùng dùng Index thay vì tên, dẫn đến lỗi khi viết script.
- Luôn sử dụng
Select-ObjecthoặcFormat-Tableđể thu gọn đầu ra. Ví dụ:Get-NetIPAddress | Select-Object InterfaceAlias, IPAddress, PrefixOrigin. - Để xuất danh sách IP ra file CSV:
Get-NetIPAddress -AddressFamily IPv4 | Export-Csv -Path "D:IP_List.csv" -NoTypeInformation. - Khi cần lấy gateway, dùng
Get-NetRoute -DestinationPrefix "0.0.0.0/0". - Kiểm tra phiên bản PowerShell:
$PSVersionTable. Các lệnh module NetTCPIP chỉ hoạt động trên PowerShell 3.0 trở lên. - Nếu bạn đang dùng Windows 7 hoặc Server 2008 R2, có thể phải cài đặt thêm module hoặc sử dụng WMI thay thế.
- Xử lý sự cố mạng: Kiểm tra nhanh xem máy tính có nhận IP từ DHCP không, IP có bị trùng không.
- Lập báo cáo cấu hình: Viết script quét toàn bộ subnet và xuất file Excel danh sách IP, hostname, MAC.
- Tự động hóa triển khai: Gán IP tĩnh cho máy chủ mới bằng lệnh New-NetIPAddress.
- Giám sát từ xa: Dùng Invoke-Command để kiểm tra IP của 50 máy tính trong 5 phút, thay vì remote từng máy.
Bài viết này sẽ hướng dẫn bạn cách xem địa chỉ ip bằng powershell cho cả hai trường hợp, bao gồm cả IPv4 và IPv6.
Hướng dẫn chi tiết cách xem địa chỉ IP bằng PowerShell

1. Xem địa chỉ IP private (nội bộ) với lệnh Get-NetIPAddress
Đây là lệnh chuyên dụng và được khuyến nghị nhất. Get-NetIPAddress thuộc module NetTCPIP, hiển thị tất cả cấu hình IP trên máy. Cách thực hiện:
Ví dụ cụ thể:
Get-NetIPAddress -AddressFamily IPv4 – Chỉ hiển thị địa chỉ IPv4.
Get-NetIPAddress -InterfaceAlias "Ethernet" – Xem IP của card Ethernet cụ thể.
| Tham số | Mô tả | Ví dụ |
|---|---|---|
-AddressFamily |
Lọc theo IPv4 hoặc IPv6 | Get-NetIPAddress -AddressFamily IPv4 |
-InterfaceAlias |
Lọc theo tên giao diện mạng | Get-NetIPAddress -InterfaceAlias “Wi-Fi” |
-PrefixOrigin |
Lọc theo nguồn cấp (DHCP, Manual) | Get-NetIPAddress -PrefixOrigin Dhcp |
2. Xem thông tin card mạng và IP bằng Get-NetAdapter
Lệnh Get-NetAdapter cung cấp thông tin về các adapter mạng vật lý và ảo. Mặc dù không hiển thị trực tiếp địa chỉ IP, nhưng nó cung cấp tên và trạng thái của từng card, hữu ích khi bạn cần xác định đúng giao diện trước khi truy vấn IP.
Cách kết hợp để xem chi tiết:
Get-NetAdapter -Name "Ethernet0" | Get-NetIPAddress
Cách xem địa chỉ ip bằng powershell này rất hiệu quả khi bạn quản lý nhiều card mạng ảo (Hyper-V, Docker) và cần lọc chính xác.
3. Sử dụng lệnh ipconfig trong PowerShell
PowerShell vẫn hỗ trợ lệnh ipconfig truyền thống. Vì ipconfig là lệnh cmd.exe, nó chạy trong PowerShell mà không gặp vấn đề tương thích. Tuy nhiên, đầu ra là văn bản, khó xử lý bằng script hơn so với Get-NetIPAddress.
ipconfig /all – Hiển thị toàn bộ thông tin chi tiết từng adapter, bao gồm IP, subnet mask, gateway, DNS, DHCP.
Mặc dù không phải là cách xem địa chỉ ip bằng powershell thuần túy, nhưng ipconfig vẫn là lựa chọn nhanh cho người dùng quen thuộc với CMD.
4. Truy vấn địa chỉ IP public (external IP) bằng PowerShell
Để xem IP public, bạn cần gửi yêu cầu đến một dịch vụ bên ngoài (web API). PowerShell có thể thực hiện điều này qua Invoke-RestMethod hoặc (New-Object Net.WebClient).DownloadString. Một số dịch vụ phổ biến:
Câu lệnh ví dụ:
(Invoke-RestMethod -Uri "https://api.ipify.org?format=json").ip
Hoặc đơn giản: (Invoke-WebRequest -Uri "https://ifconfig.me/ip").Content.Trim()
Lưu ý: Cách xem địa chỉ ip bằng powershell này phụ thuộc vào kết nối Internet và dịch vụ bên thứ ba. Nếu bạn ở trong mạng nội bộ không có Internet, lệnh sẽ thất bại.
5. Xem địa chỉ IP của máy tính từ xa bằng PowerShell
Trong môi trường doanh nghiệp, quản trị viên thường cần xem IP của nhiều máy tính mà không cần truy cập vật lý. PowerShell cho phép thực hiện điều này qua WinRM (Windows Remote Management) hoặc sử dụng Invoke-Command.
Ví dụ:
Invoke-Command -ComputerName "Client01" -ScriptBlock { Get-NetIPAddress -AddressFamily IPv4 | Select-Object IPAddress }
Hoặc dùng Get-WmiObject (cổ điển hơn):
Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Computer "Client01" | Where-Object { $_.IPEnabled -eq $true } | Select-Object IPAddress
Cách xem địa chỉ ip bằng powershell từ xa yêu cầu cấu hình WinRM và quyền truy cập phù hợp. Đây là kỹ thuật quan trọng trong quản trị hệ thống.
So sánh các lệnh xem địa chỉ IP trong PowerShell
| Lệnh | Dữ liệu trả về | Dạng dữ liệu | Yêu cầu quyền | Khả năng xử lý script |
|---|---|---|---|---|
| Get-NetIPAddress | IP, subnet, gateway, DNS (nếu có) | Đối tượng | Không cần admin (nhưng admin cho phép xem nhiều hơn) | Cao |
| ipconfig | IP, subnet, gateway, DNS, MAC | Văn bản | Không | Thấp (cần parse text) |
| Get-NetAdapter + Get-NetIPAddress | IP theo từng adapter cụ thể | Đối tượng | Admin (nếu adapter ẩn) | Cao |
| Invoke-RestMethod (IP public) | IP public | Chuỗi | Không | Trung bình |
Lợi ích và hạn chế khi xem địa chỉ IP bằng PowerShell

Sai lầm thường gặp khi sử dụng PowerShell để xem địa chỉ IP
Mẹo và lưu ý quan trọng khi thao tác

Ứng dụng thực tế của việc xem IP bằng PowerShell
Trong công việc quản trị hệ thống hàng ngày, cách xem địa chỉ ip bằng powershell được áp dụng vào nhiều tình huống:
Câu hỏi thường gặp về cách xem địa chỉ IP bằng PowerShell

Lệnh nào nhanh nhất để xem IP nội bộ?
Lệnh Get-NetIPAddress -AddressFamily IPv4 là nhanh và đầy đủ nhất. Nếu chỉ cần IP của card đang hoạt động, thêm tham số | Where-Object { $_.InterfaceOperationalStatus -eq "Up" }.
Tôi có thể xem IP public mà không cần truy cập web không?
Không thể. IP public là thông tin bên ngoài mạng nội bộ, máy tính không tự biết được. PowerShell phải nhờ API từ các dịch vụ như ipify.org hoặc ifconfig.me.
Tại sao Get-NetIPAddress không hiển thị gateway?
Lệnh Get-NetIPAddress chỉ hiển thị địa chỉ IP và subnet. Để xem gateway, dùng Get-NetRoute -DestinationPrefix "0.0.0.0/0" và lấy thuộc tính NextHop.
Có cách nào xem IP mà không cần dùng module NetTCPIP không?
Có.
Không khác. PowerShell chỉ gọi lại chương trình ipconfig.exe nên đầu ra giống hệt. Tuy nhiên, trong PowerShell bạn có thể dùng pipeline để xử lý text, nhưng phức tạp hơn so với dùng đối tượng.
Kết luận
Cách xem địa chỉ ip bằng powershell mang lại nhiều lợi thế về tốc độ, độ chính xác và khả năng tự động hóa so với các phương pháp truyền thống. Từ lệnh Get-NetIPAddress cơ bản cho IP private đến việc truy vấn API để lấy IP public, PowerShell đáp ứng mọi nhu cầu của người dùng từ cá nhân đến quản trị viên chuyên nghiệp. Bạn nên thực hành các lệnh đã giới thiệu để làm quen với cú pháp, đặc biệt là cách kết hợp pipeline và filter. Khi đã thành thạo, bạn có thể xây dựng các script phức tạp hơn để quản lý toàn bộ hệ thống mạng một cách hiệu quả.







