news 2026/6/15 10:37:09

验证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/6/15 3:15:56

ATX自动化测试工具:终极免费跨平台解决方案

ATX自动化测试工具:终极免费跨平台解决方案 【免费下载链接】ATX Smart phone automation tool. Support iOS, Android, WebApp and game. 项目地址: https://gitcode.com/gh_mirrors/at/ATX ATX(AutomatorX)是网易游戏团队开发的智能…

作者头像 李华
网站建设 2026/6/10 10:58:52

Qwen3-VL:2025多模态AI革命,从看懂到自主行动的技术跨越

导语 【免费下载链接】Qwen3-VL-30B-A3B-Instruct 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-VL-30B-A3B-Instruct 阿里通义千问团队推出的Qwen3-VL多模态大模型,在32项核心测评指标上超越Gemini 2.5 Pro和GPT-5,以80亿参数实现旗…

作者头像 李华
网站建设 2026/6/14 10:15:19

机器人仿真入门实战:从零搭建Gazebo虚拟测试平台

在机器人技术快速发展的今天,拥有一个专业的虚拟测试平台对于算法验证和系统优化至关重要。Gazebo作为业界标准的机器人仿真工具,为开发者提供了强大的Gazebo环境构建能力。本指南将带你从基础入门到实战应用,掌握快速搭建仿真环境的核心技巧…

作者头像 李华
网站建设 2026/6/14 13:53:54

揭秘OrcaSlicer:3D打印切片技术的性能突破与实战指南

揭秘OrcaSlicer:3D打印切片技术的性能突破与实战指南 【免费下载链接】OrcaSlicer G-code generator for 3D printers (Bambu, Prusa, Voron, VzBot, RatRig, Creality, etc.) 项目地址: https://gitcode.com/GitHub_Trending/orc/OrcaSlicer 作为一名3D打印…

作者头像 李华
网站建设 2026/6/12 15:53:03

Element-UI-X Typewriter组件终极指南:打造惊艳的动态文本展示效果

Element-UI-X Typewriter组件终极指南:打造惊艳的动态文本展示效果 【免费下载链接】element-ui-x Element-UI-X 开箱即用的AI组件库,基于Vue2 Element 项目地址: https://gitcode.com/worryzyy/element-ui-x Typewriter组件是Element-UI-X中一个…

作者头像 李华
网站建设 2026/6/14 11:03:42

LittleFS嵌入式存储技术完全手册:从零构建可靠的文件系统

LittleFS嵌入式存储技术完全手册:从零构建可靠的文件系统 【免费下载链接】littlefs 项目地址: https://gitcode.com/gh_mirrors/lit/littlefs LittleFS作为专为微控制器环境设计的轻量级文件系统,在资源受限的嵌入式设备中展现出卓越的性能表现…

作者头像 李华