windows中快速获取本机ipv4地址有五种powershell方法:一、get-netipaddress筛选手动或dhcp分配的ipv4;二、resolve-dnsname或.net dns解析主机名;三、ipconfig结合select-string提取;四、get-netipconfiguration过滤活动网卡;五、.net networkinterface枚举启用的非回环适配器。

如果您需要在Windows系统中快速获取本机的IP地址,PowerShell提供了多种内置命令可直接执行。以下是几种常用且有效的查询方法:
一、使用Get-NetIPAddress命令筛选IPv4地址
Get-NetIPAddress是Windows网络管理模块中的核心cmdlet,可列出所有网络接口的IP配置信息,通过参数筛选能精准定位IPv4地址。
1、以管理员身份打开PowerShell窗口。
2、输入命令:Get-NetIPAddress -AddressFamily IPv4 | Where-Object {$_.PrefixOrigin -eq 'Manual' -or $_.PrefixOrigin -eq 'Dhcp'}。
3、回车执行后,查看输出结果中的IPAddress列,该列显示的即为当前网卡分配的有效IPv4地址。
二、使用Test-Connection结合Resolve-DnsName获取本地主机名对应IP
该方法通过解析本机主机名来反查其绑定的IPv4地址,适用于确认DNS注册或HOSTS映射生效情况。
1、在PowerShell中运行:$hostname = hostname; Resolve-DnsName $hostname | Where-Object {$_.Type -eq 'A'} | Select-Object IPAddress。
2、若返回结果为空,说明本地DNS未正确解析主机名,此时可改用:[System.Net.Dns]::GetHostAddresses($hostname) | Where-Object {$_.AddressFamily -eq 'InterNetwork'}。
在WINDOWS下,编译时的路径是WINDOWS安装目录。 ; 在命令行模式下,PHP.INI的查找路径可以用 -C 参数替代。 ; 该文件的语法非常简单。空白字符和用分号´;´开始的行被简单地忽略(就象你可能 ; 猜到的一样)。 章节标题(例如 : [FOO])也被简单地忽略,即使将来它们可能 ; 有某种的意义。 ; ;
三、使用ipconfig命令的PowerShell封装方式
虽然ipconfig是传统CMD命令,但PowerShell可通过Invoke-Expression或直接调用并结构化解析其输出,实现更清晰的结果提取。
1、执行:ipconfig | Select-String "IPv4 Address"。
2、若需去除冗余文本仅保留IP,使用:(ipconfig | Select-String "IPv4 Address").Line.Split(':')[1].Trim()。
四、使用Get-NetIPConfiguration获取完整网络配置
Get-NetIPConfiguration提供比Get-NetIPAddress更完整的上下文信息,包括接口索引、网关、DNS服务器等,适合排查多网卡环境下的IP归属问题。
1、输入命令:Get-NetIPConfiguration | Where-Object {$_.IPv4DefaultGateway -ne $null} | Select-Object InterfaceAlias, IPv4Address。
2、该命令将仅显示拥有默认网关的活动网卡及其IPv4地址,避免虚拟网卡或禁用接口的干扰。
五、使用.NET类[System.Net.NetworkInformation.NetworkInterface]枚举活动适配器
该方法绕过PowerShell网络模块依赖,直接调用底层.NET API,适用于受限策略环境下无法加载NetTCPIP模块的情形。
1、运行:[System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces() | Where-Object {$_.OperationalStatus -eq 'Up' -and $_.NetworkInterfaceType -ne 'Loopback'} | ForEach-Object { $_.GetIPProperties().UnicastAddresses } | Where-Object {$_.Address.AddressFamily -eq 'InterNetwork'} | Select-Object @{Name='IPAddress';Expression={$_.Address.IPAddressToString}}。









