鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: zltzlt

Python:每日一题 388

[复制链接]
发表于 2020-5-12 10:38:48 | 显示全部楼层
领鱼币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-12 11:10:08 | 显示全部楼层
import re


def func388(s):
    ipv4 = r"^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$"
    ipv6 = r"^([\da-fA-F]{1,4}:){7}[\da-fA-F]{1,4}$"

    if re.fullmatch(ipv4, s):
        return "IPv4"
    elif re.fullmatch(ipv6, s):
        return "IPv6"
    else:
        return 'Neither'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-14 13:38:59 | 显示全部楼层

输入 "2001:0db8:85a3:0:0:8A2E:0370:7334:" 结果有误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-14 13:40:06 | 显示全部楼层
Twilight6 发表于 2020-5-1 23:29
凑合吧 最后附上自己的测试

输入 '1.1.1.1.' 出错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-14 13:45:07 | 显示全部楼层

输入 "1e1.4.5.6" 出错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 23:41:10 | 显示全部楼层
import re

def check_ip(a=None):
    a = "2001:0db8:85a3:0:0:8A2E:0370:7334"
    ipv4_flag = False

    if ':' not in a:

没有鱼币的苦逼-.-
        for k in a.split('.'):
            if str(int(k)) != k:
                break
            if 255 < int(k) or int(k) < 0:
                break
        else:
            ipv4_flag = True

    if ipv4_flag:
        print("IPV4")
    else:
        if re.match("([\dabcdef]{1,4}:){7}[\dabcdef]{1,4}$", a, re.I):
            print("IPV6")
        else:
            print("Neither")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 00:18:48 | 显示全部楼层
import re


def check_ip(a=None):
    a = "2001:0db8:85a3:0:0:8A2E:0370:7334"
    ipv4_flag = False

    try:
        if ':' not in a:

            for k in a.split('.'):

                if str(int(k)) != k:
                    break
                if 255 < int(k) or int(k) < 0:
                    break
            else:
                ipv4_flag = True
    except:
        pass

    if ipv4_flag:
        print("IPV4")
    else:
        if re.match("([0-9abcdef]{1,4}:){7}[0-9abcdef]{1,4}$", a, re.I):
            print("IPV6")
        else:
            print("Neither")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-19 17:18:04 | 显示全部楼层
def fun388(x):
    hex_temp = ':0123456789abcdefABCDEF'
    dec_temp = '.0123456789'
    if '.' in x and ':' not in x:
        if len(x.split('.')) > 4:
            return 'Neither'
        for i in x:
            if i not in dec_temp:
                return 'Neither'
        for i in x.split('.'):
            if i[0] == '0' or int(i) > 255:
                return 'Neither'
        else:
            return 'IPv4'
    if ':' in x and '.' not in x:
        if len(x.split(':')) > 16 or len(x.split(':')) < 8:
            return 'Neither'
        for i in x:
            if i not in hex_temp:
                return 'Neither'
        for i in x.split(':'):
            if len(i) > 4:
                return 'Neither'
        else:
            return 'IPv6'
    return 'Neither' 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-23 17:30:35 | 显示全部楼层
def fun388(address):
    if '.' in address and address.count('.') == 3:
        splited = address.split('.')
        for each in splited:
            if each[0] == '0' or not each.isdecimal() or int(each) < 0  or int(each) > 255:
                break

        else:
            return 'IPv4'

    elif ':' in address and address.count(':') == 7:
        splited = address.split(':')
        for each in splited:
            if not each or len(each) > 4:
                break

        else:
            return 'IPv6'

    return 'Neither'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-31 10:41:44 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 13:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表