ip地址由几个字节
如何判断一个字符串是否为正确的IP地址:
首先给出一个c函数的原型:int sscanf(const char *buffer,const char *format,[argument ]...)它的返回值是参数的数据,也就是argument的个数,buffer:存储的数据,format:格式控制字符串,argument:选择性设定字符串。这个程序从标准流读取数据,可以进行无限制的输入。下面贴出代码,然后引出另外一个问题,将字符串ip转换成整形ip地址。[cpp]
#include<stdio.h
#include<string.h
int main(void){
char str[32];
int a,b,c,d;int ret=0;
while(fgets(str,sizeof(str),stdin)!=NULL){
int len=strlen(str);
str[len]='\0';
ret=sscanf(str,%d.%d.%d.%d,&a,&b,&c,&d);
if(ret==4&&(a=0&&a<=255)&&(b=0&&b<=255)&&(c=0&&c<=255)&&(d=0&&d<=255)){
printf(it is ip!\n);}else
printf(it is not ip!\n);}return 0;}gcc -Wall ip.c -o ip12.3.4.5
下面来引出另外一个问题,在很多情况下,要求把字符串ip转换成整形ip,这个问题也可以应用sscanf这个函数,首先把四个字段存储到a,b,c,d四个变量当中去,然后进行移位运算,因为ip地址是32位的,而且是无符号整形变量,所以可以应用unsigned int 来存储. unsinged int ip=(a<<24)+(b<<16)+(c<<8)+d。
我的IP地址网站被记录,显示 "(警告)发送非法字符,已经记录你的IP(***)",我用的是宽带,会有什么后果: 只要不是发的是非法内容都不要紧。那个应该是个防Sql注入的过滤器,检测到你提交的数据中含有可能对网站运行产生危害的字符,只要不是一直不停的尝试管理员一般不会管的。用户经常的会有这种误提交错误。如果你一直试管理员就有可能封掉你的ip,封ip已经是最后的手段了。
无效ip地址和子网掩码:
为了给不同规模的网络提供必要的灵活性,IP地址的设计者将IP地址空间划分为五个不同的地址类别,如下表所示,其中A,B,C三类最为常用:
A类IP地址
一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机。 需要注意的是网络号不能为127,这是因为该网络号被保留用作回路及诊断功能。
B类IP地址
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机。
C类IP地址
一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。
为了提高IP地址的使用效率,可将一个网络划分为子网:采用借位的方式,从主机位最高位开始借位变为新的子网位,所剩余的部分则仍为主机位。这使得IP地址的结构分为三部分:网络位、子网位和主机位。
引入子网概念后,网络位加上子网位才能全局唯一地标识一个网络。把所有的网络位用1来标识,主机位用0来标识,就得到了子网掩码。
子网编址使得IP地址具有一定的内部层次结构,这种层次结构便于IP地址分配和管理。
new~补充:
IP地址由32位二进制数表示,我们可将其分为4个字段,每字段8位,也就是一字节,为了方便表示和记忆,将每个字段的二进制数换算成十进制数,并其间用“.”分隔,就是我们常见的IP形式,例如202.64.152.9
对于A类IP地址来说,第一字节为网络地址标识,后三字节为主机地址标识,这样说明白了吧。
因为您的局域网有400台主机,子网掩码用255.255.0.0
ip地址用楼下的方案可以,网关地址一般设置成x.x.x.1
的形式
电子商务原理 根据目前使用的IP协议,internet上的IP地址可分为哪几类,如何区分?:
ip分三类
1.A类IP地址
一个A类IP地址是指,在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP地址的话,A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络的标识长度为7位,主机标识的长度为24位,A类网络地址数量较少,可以用于主机数达1600多万台的大型网络。
2.B类IP地址
一个B类IP地址是指,在IP地址的四段号码中,前两段号码为网络号码,剩下的两段号码为本地计算机的号码。如果用二进制表示IP地址的话,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。B类IP地址中网络的标识长度为14位,主机标识的长度为16位,B类网络地址适用于中等规模规模的网络,每个网络所能容纳的计算机数为6万多台。
3.C类IP地址
一个C类IP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。如果用二进制表示IP地址的话,C类IP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须是“110”。C类IP地址中网络的标识长度为21位,主机标识的长度为8位,C类网络地址数量较多,适用于小规模的局域网络,每个网络最多只能包含254台计算机。
除了上面三种类型的IP地址外,还有几种特殊类型的IP地址,TCP/IP协议规定,凡IP地址中的第一个字节以“lll0”开始的地址都叫多点广播地址。因此,任何第一个字节大于223小于240的IP地址是多点广播地址;IP地址中的每一个字节都为0的地址(“0.0.0.0”)对应于当前主机;IP地址中的每一个字节都为1的IP地址(“255.255.255.255”)是当前子网的广播地址;IP地址中凡是以“llll0”的地址都留着将来作为特殊用途使用;IP地址中不能以十进制“127”作为开头,27.1.1.1用于回路测试,同时网络ID的第一个6位组也不能全置为“0”,全“0”表示本地网络。分享给你的朋友吧:i贴吧 新浪微博腾讯微博QQ空间人人网豆瓣MSN
对我有帮助
18
如何检查一个字符串在python的IP地址模式匹配:
是用re模块。具体代码如下:
import re
pattern = re.compile(
r"((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))")
x = "sljflafja10.10.10.11flksjfklsajf00.00.1xxxx22.222.222.22"
y = "fjlsfjla10.10.10.10jkfsjf"
z = "10.10.10.10"
a = pattern.findall(x)
b = pattern.findall(y)
c = pattern.findall(z)
ips1 = [g[0] for g in a]
ips2 = [g[0] for g in b]
ips3 = [g[0] for g in c]
print ips1
print ips2
print ips3
输出结果:
['10.10.10.11', '22.222.222.22']
['10.10.10.10']
['10.10.10.10']
主要是IP地址的正则表达式比较复杂,python中的正则表达式使用还是比较简单的。
怎样区分IP地址属于哪一类?(如89.18.66.5属于A类):
按照IP地址的逻辑层次来分,IP地址可以分为A,B,C,D,E等5类。A类IP地址用于大型网络,B类IP地址用于中型网络,C类用于小规模网络,最多只能连接256台设备,D类IP地址用于多目的地址发送,E类则保留为今后使用。
1.A类IP地址
一个A类IP地址由1字节(每个字节是8位)的网络地址和3个字节主机地址组成,网络地址的最高位必须是“0”,即第一段数字范围为1~127。每个A类地址可连接2的24次方减2等于16777214台主机,Internet有2的7次方减2等于126个A类地址。
2.B类IP地址
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,即第一段数字范围为128~191。每个B类地址可连接2的16次方减2等于65534台主机,Internet有2的14次方减2等于16382个B类地址。
3.C类IP地址
一个C类地址是由3个字节的网络地址和1个字节的主机地址组成,网络地址的最高位必须是“ll0”,即第一段数字范围为192~223。每个C类地址可连接2的8次方减2等于254台主机,Internet有2的21次方减2等于2097150个C类地址。
4.D类地址
第一个字节以“lll0”开始,第一个字节的数字范围为224~239,是多点播送地址,用于多目的地信息的传输,和作为备用。全零(“0.0.0.0”)地址对应于当前主机,全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。用于多点播送。
5.E类地址
以“llll0”开始,即第一段数字范围为240~247。E类地址保留,仅作实验和开发用。
IP地址倒数第二位什么意思?代表着什么呢?: 参考一下:IP地址分类1.A类IP地址 一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围1.0.0.1-126.255.255.254可用的A类网络有126个,每个网络能容纳1亿多个主机。 2.B类IP地址 一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围128.0.0.1-191.255.255.254。可用的B类网络有16382个,每个网络能容纳6万多个主机 。 3.C类IP地址 一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围192.0.0.1-223.255.255.254C类网络可达209万余个,每个网络能容纳254个主机。 4.D类地址用于多点广播(Multicast)。 D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。 地址范围224.0.0.1-239.255.255.2545.E类IP地址 以“llll0”开始,为将来使用保留。 全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。
如何检查一个字符串在python的IP地址模式匹配:
是用re模块。具体代码如下:
import repattern = re.compile(
r"((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))")
x = "sljflafja10.10.10.11flksjfklsajf00.00.1xxxx22.222.222.22"
y = "fjlsfjla10.10.10.10jkfsjf"
z = "10.10.10.10"
a = pattern.findall(x)
b = pattern.findall(y)
c = pattern.findall(z)
ips1 = [g[0] for g in a]
ips2 = [g[0] for g in b]
ips3 = [g[0] for g in c]
print ips1
print ips2
print ips3
输出结果:
['10.10.10.11', '22.222.222.22']
['10.10.10.10']
['10.10.10.10']
主要是IP地址的正则表达式比较复杂,python中的正则表达式使用还是比较简单的。
-
12t天然气什么意思
用cdr做店招高2米长3米该怎么设置,需要真的按照这么大设置吗: 单位里有米好不,不同版本可能有差别,有的是M=米,CM=厘米,MM=毫米,千米单位都有。 ...
218条评论 2442人喜欢 1823次阅读 733人点赞 -
nba的谁穿过12号球衣
CDR的封套可以自己定义形状吗,怎么自定义。跪求高手赐教,感激涕零: 封套后,你会发现它是由贝塞尔工具组成的!你可以用形状工具调整!形状工具就是第二个工具! ...
786条评论 3773人喜欢 2763次阅读 320人点赞 -
1342什么意思
cdr如何重复一个步骤: 可以用Ctrl+R来做Ctrl+r只能重复上一步的操作,你上一步做的是旋转,那么你不断的按Ctrl+r,它就会在原位不停地旋转,除非你Ctrl+d一下,而且,Ctrl+r还可以按照你的操作比例进行缩放。相对Ctrl+...
246条评论 4773人喜欢 2965次阅读 704人点赞 -
oppo和vivo和苹果哪个好
在CDR中如何调整文字笔画的粗细?: 这个好像没有,但是有固定笔画粗细加减第一个是内外,第二个是减,第三个是加粗 ...
440条评论 3657人喜欢 4055次阅读 753人点赞
最新热搜榜单
随机推荐榜单
- 虚幻勇士的IFSCL1.8.1是个什么游戏?求一个下载地址或发到我的邮箱xcwang1998@126.com
- 《2012》中的美国总统的女儿是谁演的?
- 2016年哪些三本学校设有企业管理的专业
- 昆山供电公司营业大厅在哪里...急
- 有多少明星参加了大S和汪小菲的婚礼啊?
- 20个气缸的机器如何任意PLC任意动作和复位,有没有类似的程序。或者模板
- 跪求《亲家过年》里文章喝醉的英文插曲MP3格式
- 风湿怎么回事?
- 奇骏和斯巴鲁xv哪个好
- 沃尔沃xc60档位杠进水怎么办
- 世界记录100米比赛最快的速度是多少时间??
- 身高180体重80KG,穿AD的羽绒服多大的?
- 男生给女生发mua是什么意思
- 基金中的双gp是什么意思
- QQ截图是什么意思
- "my name start with a C and end with an L .I live in the desert .a hard place to live .I can car...
- AU解压后无法安装,求解
- java调用dll如何传入指针?invoke后如何获取指针的值?
- CO2激光这个疗的多少钱
- 京珠高速建宁服务区离珠洲高铁站多远