当前位置: 首页 > news >正文

PowerShell检查IP是否为保留IP

PowerShell检查IP是否为保留IP

 

function Test-ReservedIP {param([Parameter(Mandatory=$true)][string]$IPAddress)# 正则匹配 IPv4 格式$ipv4Pattern = '^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$'if ($IPAddress -notMatch $ipv4Pattern) {Write-Error "无效的IPv4地址: $IPAddress"return $false}# 提取并转换为整数数组$octets = $IPAddress.Split('.') | ForEach-Object { [int]$_ }# 验证每个八位组范围foreach ($o in $octets) {if ($o -lt 0 -or $o -gt 255) {Write-Error "IP段超出范围 (0-255): $o"return $false}}# 将IPv4转换为32位无符号整数(大端序)$ipInt = ($octets[0] -shl 24) + ($octets[1] -shl 16) + ($octets[2] -shl 8) + $octets[3]# 定义保留IP范围(起始和结束整数)$reservedRanges = @(# 127.0.0.0/8 - Loopback@{ Start = 127 -shl 24; End = (127 -shl 24) + 0x00FFFFFF },# 10.0.0.0/8 - Private@{ Start = 10 -shl 24; End = (10 -shl 24) + 0x00FFFFFF },# 172.16.0.0/12 - Private (172.16.0.0 ~ 172.31.255.255)@{ Start = (172 -shl 24) + (16 -shl 16); End = (172 -shl 24) + (31 -shl 16) + 0xFFFF },# 192.168.0.0/16 - Private@{ Start = (192 -shl 24) + (168 -shl 16); End = (192 -shl 24) + (168 -shl 16) + 0xFFFF },# 169.254.0.0/16 - Link-local@{ Start = (169 -shl 24) + (254 -shl 16); End = (169 -shl 24) + (254 -shl 16) + 0xFFFF },# 224.0.0.0/4 - Multicast (224.0.0.0 ~ 239.255.255.255)@{ Start = 224 -shl 24; End = (239 -shl 24) + 0x00FFFFFF },# 192.0.2.0/24 - TEST-NET-1 (examples and tutorials)@{ Start = (192 -shl 24) + (0 -shl 16) + (2 -shl 8); End = (192 -shl 24) + (0 -shl 16) + (2 -shl 8) + 0xFF },# 198.51.100.0/24 - TEST-NET-2@{ Start = (198 -shl 24) + (51 -shl 16) + (100 -shl 8); End = (198 -shl 24) + (51 -shl 16) + (100 -shl 8) + 0xFF },# 203.0.113.0/24 - TEST-NET-3@{ Start = (203 -shl 24) + (0 -shl 16) + (113 -shl 8); End = (203 -shl 24) + (0 -shl 16) + (113 -shl 8) + 0xFF },# 0.0.0.0/8 - This network@{ Start = 0; End = 0x00FFFFFF })# 判断是否在任一保留范围内foreach ($range in $reservedRanges) {if ($ipInt -ge $range.Start -and $ipInt -le $range.End) {return $true}}return $false
}$ip = "127.0.1.1"$isReserved = Test-ReservedIP -IPAddress $ip
if ($isReserved)
{"是保留IP"}
else {"不是保留IP"}

 

http://www.sczhlp.com/news/11193/

相关文章:

  • 第三十篇
  • 莫队卡常
  • CSP-S模拟10
  • 2025年macOS安装MongoDB详细教程
  • RJ45接口旁边的两个指示灯通常用于显示网络连接的状态,帮助用户诊断连接是否正常。一般来说,它们的功能如下:
  • Github使用教程(详细图文)
  • 8. 面向对象编程 8.9 內部类
  • keil界面图标消失解决办法
  • raid磁盘阵列介绍
  • 焊接机械手氩气节省的方式
  • 【CAPL】循环码的创建和校验
  • python使用mongodb工具类 - 与光同尘
  • 2025 暑期 mx 集训 7.25
  • 一文带你快速了解招聘管理系统
  • Vue 的 nextTick 的原理是什么?
  • ARM CPU的 intrinsics指令集 - svcmpgt_u32
  • 河南萌新联赛2025第(五)场:信息工程大学”题解
  • IP_UV_PV介绍
  • Flutter 接入 Line 登录
  • c语言之关于AT指令连接MQTT时如何区分连接失败和中途失败
  • 路由介绍
  • 2025牛客暑期多校训练营9
  • md目录测试 - zlay
  • 普通目录测试 - zlay
  • Python提取Srec或Hex文件数据
  • ArcGisPro 编程批量分析、发布和覆盖地图服务
  • 【分享】对着 WBLT 写了(WBLT 学习报告)
  • RidgeBot 5.4.5 - 基于 AI 的主动安全验证平台
  • 函数指针用法
  • Microsoft Office LTSC 2024 for Mac (Microsoft 365) 16.100 - 文档、电子表格、演示文稿和电子邮件