python IP地址

Description
2011年2月3日,国际互联网名称与数字地址分配机构(ICANN)官方宣布:全球最后一批IPv4地址分配完毕。这标志着第一代互联网地址的“池子”已经全空了,互联网向IPv6过渡已经开始进入了实施阶段。全人类将从2011年开始,共同面临基于IP地址短缺的发展问题。
“IP 地址”是因特网上的每台计算机和其它设备都规定了一个唯一的地址,由于有这种唯一的地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。
IPv4地址是由32位二进制数组成(按TCP/IP参考模型划分) ,理论上有2^32个地址。为了提高可读性,一般把IP地址中的每8位用其等效的十进制数字表示,并且在这些数字之间加上一个点,这就叫做IPv4地址的“点分十进制记法”。
例如
在这里插入图片描述

所以10000000000010110000001100011111的点分十进制记法为128.11.3.31
而IP地址网段就是从一个IP到另一个IP ,好比 从192.168.0.1到192.168.255.255这之间就是一个网段。
最近呢强哥有一件很烦的事,服务器的日志文件动辄上G的大小,多得吓人的IP地址,所以呢,想请你利用上面所介绍的IP地址知识和你高超的编程水平帮个忙,给出一个IP地址网段,让你判断给定的IP地址是否在这个网段之内。例如给定网段192.168.0.1—192.168.255.255,那么IP地址192.168.0.128、192.168.192.192、192.168.255.255都在这个网段之内,而IP地址192.167.1.12不在此网段之内。

Input
输入第一行是一个IPv4地址网段,格式是x.x.x.x–x.x.x.x。
网段下面是一个数字T,表示下面有T行IP地址(T<=300)。
接下来有T行,每行一个IP地址,且前后都没有空格。
Output
如果IP地址在所给的网段之内,则输出“Yes”,否则输出“No”。每个输出占一行,行与行之间没有空行。
在这里插入图片描述
下面展示一些 内联代码片

x,y = input().split('--')
a = x.split('.')
b = y.split('.')
n = int(input())
for i in range(0,n):
    s = input().split('.')
    if (int(s[0]) < int(a[0]) or int(s[0]) > int(b[0])):
        print('No')
    elif(int(s[1]) < int(a[1]) or int(s[1]) > int(b[1])):
        print('No')
    elif (int(s[2]) < int(a[2]) or int(s[2]) > int(b[2])):
        print('No')
    elif (int(s[3]) < int(a[3]) or int(s[3]) > int(b[3])):
        print('No')
    else:
        print('Yes')

本人刚学Python,代码可能写的不是很好,目前在刷oj平台的题目,有些题目在网上找不到答案,所打算分享一下自己的代码,质量可能不是很好,但都是ac过的,关注我,不定时分析oj代码,如果各位有不会的,可以私聊我,一起研究

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

又菜又爱分享的小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值