首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python中验证IP地址?

如何在Python中验证IP地址?
EN

Stack Overflow用户
提问于 2008-11-25 23:40:46
回答 9查看 297.2K关注 0票数 170

验证用户输入的IP是否有效的最佳方法是什么?它是以字符串形式出现的。

EN

回答 9

Stack Overflow用户

发布于 2008-11-25 23:50:54

不要解析它。直接问吧。

代码语言:javascript
复制
import socket

try:
    socket.inet_aton(addr)
    # legal
except socket.error:
    # Not legal
票数 186
EN

Stack Overflow用户

发布于 2012-05-28 17:48:04

从Python3.4开始,检查IPv6或IPv4地址是否正确的最好方法是使用Python标准库模块ipaddress - IPv4/IPv6操作库s.a.。https://docs.python.org/3/library/ipaddress.html获取完整的文档。

示例:

代码语言:javascript
复制
#!/usr/bin/env python

import ipaddress
import sys

try:
    ip = ipaddress.ip_address(sys.argv[1])
    print('%s is a correct IP%s address.' % (ip, ip.version))
except ValueError:
    print('address/netmask is invalid: %s' % sys.argv[1])
except:
    print('Usage : %s  ip' % sys.argv[0])

其他版本: Github,phihag / Philipp Hagemeister,“Python3.3‘s ipaddress For older versions",https://github.com/phihag/ipaddress

phihag的backport是可用的,例如在Anaconda Python 2.7中&包含在安装程序中。s.a.https://docs.continuum.io/anaconda/pkg-docs

要使用pip进行安装:

代码语言:javascript
复制
pip install ipaddress

s.a.:IPv4地址1.0.17,"IPv4/IPv6操作库“,”3.3+ IPv4地址模块的端口“,https://pypi.python.org/pypi/ipaddress/1.0.17

票数 79
EN

Stack Overflow用户

发布于 2010-10-26 01:28:50

代码语言:javascript
复制
import socket

def is_valid_ipv4_address(address):
    try:
        socket.inet_pton(socket.AF_INET, address)
    except AttributeError:  # no inet_pton here, sorry
        try:
            socket.inet_aton(address)
        except socket.error:
            return False
        return address.count('.') == 3
    except socket.error:  # not a valid address
        return False

    return True

def is_valid_ipv6_address(address):
    try:
        socket.inet_pton(socket.AF_INET6, address)
    except socket.error:  # not a valid address
        return False
    return True
票数 77
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/319279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档