You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell实现IP地址数组排序并按逗号分隔输出

PowerShell 正确排序IP地址数组并格式化输出

直接对IP地址字符串数组排序会出现逻辑错误(比如192.168.1.10排在192.168.1.2前面),原因是字符串排序按逐字符比较,而非IP地址的十进制数值比较。以下是最优解决方案:

解决方案代码

# 定义待排序的IP地址数组
$ipArray = @("192.168.1.10", "192.168.1.2", "10.0.0.1", "172.16.3.25", "172.16.3.100")

# 基于IP地址的真实数值排序
$sortedIps = $ipArray | Sort-Object { [System.Net.IPAddress]$_ }

# 格式化为逗号分隔的字符串输出
$sortedIps -join ", "

输出示例

10.0.0.1, 172.16.3.25, 172.16.3.100, 192.168.1.2, 192.168.1.10

原理说明

通过将每个IP地址转换为[System.Net.IPAddress]类型,Sort-Object会基于IP的32位整数数值进行排序,确保每一段八位字节都按十进制大小正确排序,彻底解决字符串排序导致的顺序错误问题。

内容的提问来源于stack exchange,提问作者Ken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 08:00:58