news 2026/10/4 4:05:25

验证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/10/4 4:36:27

深入理解 FastAPI 依赖注入:超越基础用法的架构艺术

深入理解 FastAPI 依赖注入:超越基础用法的架构艺术 引言:重新思考依赖注入在现代 API 开发中的价值 在当代 Web 开发领域,依赖注入(Dependency Injection, DI)早已超越了简单的设计模式范畴,成为构建可维护、可测试和可扩展应用程…

作者头像 李华
网站建设 2026/10/4 19:29:59

音频智能新纪元:Qwen3-Omni-Captioner如何重塑12大行业的交互范式

音频智能新纪元:Qwen3-Omni-Captioner如何重塑12大行业的交互范式 【免费下载链接】Qwen3-Omni-30B-A3B-Captioner 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-Omni-30B-A3B-Captioner 导语 阿里达摩院推出的Qwen3-Omni-30B-A3B-Captioner音…

作者头像 李华
网站建设 2026/10/4 9:28:41

ERNIE 4.5 VL:4240亿参数多模态模型如何重塑企业AI落地经济学

ERNIE 4.5 VL:4240亿参数多模态模型如何重塑企业AI落地经济学 【免费下载链接】ERNIE-4.5-VL-424B-A47B-Base-Paddle 项目地址: https://ai.gitcode.com/hf_mirrors/baidu/ERNIE-4.5-VL-424B-A47B-Base-Paddle 导语 百度ERNIE 4.5系列开源模型中的ERNIE-4.…

作者头像 李华
网站建设 2026/10/4 8:59:21

vue基于Spring Boot的校园活动报名社交分享平台的应用和研究_4h8e8vq0

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华
网站建设 2026/10/4 18:23:12

Flow Launcher效率革命:Windows用户的5大生产力突破方案

在当今快节奏的工作环境中,Windows用户往往被繁琐的操作流程所困扰。Flow Launcher作为一款开源免费的快速启动工具,正以其强大的搜索能力和插件生态重新定义Windows操作体验,帮助用户实现真正意义上的效率飞跃。 【免费下载链接】Flow.Launc…

作者头像 李华
网站建设 2026/10/4 1:39:28

效率革命:阿里Wan2.2-Animate-14B开源,动画制作成本直降70%

效率革命:阿里Wan2.2-Animate-14B开源,动画制作成本直降70% 【免费下载链接】Wan2.2-Animate-14B 项目地址: https://ai.gitcode.com/hf_mirrors/Wan-AI/Wan2.2-Animate-14B 导语 阿里巴巴通义实验室于2025年9月19日正式开源Wan2.2-Animate-14B…

作者头像 李华