news 2026/7/7 9:47:53

验证IP地址(二)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
验证IP地址(二)

解决方案

概述

最直接的方法是使用内置函数和 try/catch 结构检查 IP 地址的正确性:在 Python 中使用 ipaddress,在 Java 中使用 InetAddress 。

Python 实现

from ipaddress import ip_address, IPv6Address class Solution: def validIPAddress(self, IP: str) -> str: try: return "IPv6" if type(ip_address(IP)) is IPv6Address else "IPv4" except ValueError: return "Neither"

Java 实现

import java.net.*; class Solution { public String validIPAddress(String IP) { try { return (InetAddress.getByName(IP) instanceof Inet6Address) ? "IPv6": "IPv4"; } catch(Exception e) {} return "Neither"; } }

注意:这两个类都是引用 POSIX -兼容的 inet-addr() 解析地址。如果地址带有前导零块,可能会发生错误。

地址的组成可以使十进制,八进制(以 0 开始),或十六进制(以 0X 开始)。

例如 01.01.01.012 是有效的八进制 IP 地址。检查该地址是否有效可以在控制台运行命令 ping 01.01.01.012,八进制地址 01.01.01.012 会被转换为对应的十进制地址 1.1.1.10,因此执行 ping 命令不会出错。

该题目指出如果IPv4 地址包含前置 0则地址是无效的,但其实这不符合真实情况,不过我们仍然需要解决它。

该题目要三种主要解法:

正则表达式,该方法性能不太好;

分治法,效率最高的方法之一;

使用分治法和内置的 try/catch,将字符串转换成整数处理。使用 try/catch 不是一种好的方式,因为 try 块中的代码不会被编译器优化,所以最好不要在面试中使用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 12:02:38

LeetDown实用指南:iOS设备降级操作手册

LeetDown实用指南:iOS设备降级操作手册 【免费下载链接】LeetDown a GUI macOS Downgrade Tool for A6 and A7 iDevices 项目地址: https://gitcode.com/gh_mirrors/le/LeetDown 还在为老款iOS设备卡顿而烦恼吗?LeetDown这款专为A6和A7架构设备设…

作者头像 李华
网站建设 2026/7/7 8:22:33

深度解析Scikit-learn模型API:超越基础用法的设计模式与实战技巧

深度解析Scikit-learn模型API:超越基础用法的设计模式与实战技巧 引言:为什么需要深入理解Scikit-learn API设计? Scikit-learn作为Python机器学习领域的事实标准库,其成功不仅源于算法实现的丰富性,更得益于其一致且优…

作者头像 李华
网站建设 2026/7/6 7:38:47

Slint开发实战宝典:2025年高效跨平台界面构建全攻略

Slint开发实战宝典:2025年高效跨平台界面构建全攻略 【免费下载链接】slint Slint 是一个声明式的图形用户界面(GUI)工具包,用于为 Rust、C 或 JavaScript 应用程序构建原生用户界面 项目地址: https://gitcode.com/GitHub_Tren…

作者头像 李华
网站建设 2026/7/6 13:25:57

U-2-Net分割精度实战解析:从指标计算到性能优化

U-2-Net分割精度实战解析:从指标计算到性能优化 【免费下载链接】U-2-Net U-2-Net - 用于显著对象检测的深度学习模型,具有嵌套的U型结构。 项目地址: https://gitcode.com/gh_mirrors/u2/U-2-Net 在计算机视觉领域,显著对象检测模型U…

作者头像 李华
网站建设 2026/7/7 15:41:54

深度学习学习率调度的终极实践指南

深度学习学习率调度的终极实践指南 【免费下载链接】nndl.github.io 《神经网络与深度学习》 邱锡鹏著 Neural Network and Deep Learning 项目地址: https://gitcode.com/GitHub_Trending/nn/nndl.github.io 还在为神经网络训练效果不佳而苦恼吗?学习率调度…

作者头像 李华