每日一题 【每日一题】字符串之一 判断 IP 是否合法

Jack · 2021年08月20日 · 最后由 lework 回复于 2021年12月26日 · 50 次阅读
本帖已被设为精华帖!
  1. 问题描述: 输入一个 ip 地址,若合法,返回 YES;不合法,返回 NO
  2. 问题示例: 输入: 101.138.125.3 输出: YES
Jack 将本帖设为了精华贴 08月20日 20:28

参考代码:

# 方法1
ip = input("请输入IP:")
if len(ip.split(".")) !=4:
    print("NO")
    exit()
elif " " in ip.split("."):
    print("NO")
    exit()
else:
    new_list = [int(i) for i in ip.split(".")]
    for i in new_list:
        if not 0 <= i < 255:
            print("NO")
            break
    else:
        print("YES")

# 方法2
import IPy 
def is_ip(address): 
  try: 
    IPy.IP(address) 
    return "YES"
  except Exception as e: 
    return "NO"
address = input("请输入IP:")
is_ip(address)
input_ip=[int(x)  for x in input("请输入IP:").split(".")]
if len(input_ip) != 4:
    print("NO")
    exit()
for i in range(len(input_ip)):
    if i==0 :
        if not 0< input_ip[i]<=255:
            print("NO")
            exit()
    else:
        if not 0<= input_ip[i] <=255:
            print("NO")
            exit()
print("YES")
package main

import (
    "fmt"
    "net"
)

func main() {
    /*
    问题描述: 输入一个 ip 地址,若合法,返回 YES;不合法,返回 NO
    问题示例: 输入: 101.138.125.3 输出: YES
     */

    ip := "192.172.1"

    if address := net.ParseIP(ip); address == nil {
        fmt.Println("NO")
    } else {
        fmt.Println("YES")
    }

}
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册