实时搜索: ip地址由几个字节

ip地址由几个字节

924条评论 5067人喜欢 6536次阅读 821人点赞
我要用两台笔记本连路又器构局域网,IP是192.168.1.X网关是192.168.1.1子网掩码是255.255.255.255但是说无效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 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中的正则表达式使用还是比较简单的。

  • 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人点赞