isValidMask 验证子网掩码位数是否有效
(mask string)
| 546 | |
| 547 | // isValidMask 验证子网掩码位数是否有效 |
| 548 | func isValidMask(mask string) bool { |
| 549 | if !strings.HasPrefix(mask, "/") { |
| 550 | return false |
| 551 | } |
| 552 | |
| 553 | maskStr := mask[1:] // 去掉/前缀 |
| 554 | maskBits, err := strconv.Atoi(maskStr) |
| 555 | if err != nil { |
| 556 | return false |
| 557 | } |
| 558 | |
| 559 | // IPv4的有效掩码位数范围是0-32 |
| 560 | return maskBits >= 0 && maskBits <= 32 |
| 561 | } |
| 562 | |
| 563 | // calculateNetworkAddress 根据IP地址和子网掩码计算网络地址 |
| 564 | func calculateNetworkAddress(ipStr, mask string) (string, error) { |