IP地址科普

news/2024/7/19 10:32:14 标签: 爬虫, 运维, 网络

导读

上一篇中提到了通过DNS解析从URL解析获得IP地址,但是除了记忆方便之外,获取IP地址还有什么好处吗?或者说为什么需要IP地址。这篇文章将浅显的讲解一下IP地址的内容。

  • 什么是IP地址
  • IP地址二进制到十进制的转换
  • IP地址的分类
  • 番外

什么是IP地址

首先需要明确什么是地址地址是用来标记地点的。你寄快递或者发送邮件都会有一个收件人地址和发件人地址,这是为了让快递或者邮件能够正确的送到收件人手中,以及当收件人信息出现错误的时候能够将邮件返还给发件人并告知发送失败的原因。

同样在网络中使用ip地址来标记一台主机,且在同一网段中同一个ip地址只可能出现一次,就好比快递员送快递,在同一个小区有两幢楼都编号6,那快递员就不知道把快递送去哪个楼了。

ip地址其实分为两类,我们常见的叫做IPV4( Internet Protocol Version 4 )互联协议版本4,有版本V4之前就有IPV1 IPV2 IPV3,同样有IPV5 IPV6,IPV5在实验中已经夭折,替代IPV4的将是IPV6。(IPV4地址比如:192.168.1.1114.114.114.114,IPV6地址比如:2001:4860:4860::8888

互联网通过ip地址将各个计算机连接起来

IP地址二进制到十进制的转换

我们平时看到的ip地址是类似192.168.1.1这种十进制.分隔的形式,但在计算机的世界里都是以二进制的形式存在的。这里涉及到一个二进制和十进制的转换。

二进制====>十进制

求11000000的二进制表示,一共是8位,最低位的权重是0,最高位是7,如果对应位为1则乘以2^(n-1),否则0乘以2^(n-1)

1*2^7 + 1*2^6 + 0*2^5 + 0*2^4 + 0*2^3 + 0*2^2 + 0*2^1 + 0*2^0 = 192

十进制====>二进制

求192的二进制表示,将192不断除以2求余数,然后一直用获得的商不断往下除,最后倒着将余数连起来就是二进制表示11000000

192 / 2 = 96 ------ 0
96 / 2 = 48 ------ 0
48 / 2 = 24 ------ 0
24 / 2 = 12 ------ 0
12 / 2 = 6 ------ 0
6 / 2 = 3 ------ 0
3 / 2 = 1 ------ 1
1 / 2 = 0 ------ 1
二进制表示 11000000

其实计算快速的话,还能用拼凑法。8位每一位对应的十进制表示是128 64 32 16 8 4 2 1,将192拼凑成前面几个数字的和,然后用来哪个数字就在哪一位置1。192=128+64,所以前两位为1,二进制为11000000。

IP地址的分类

IP地址类型分为A、B、C、D、E

A、B、C类:我们生活中常用的类型的IP地址

D类:组播地址在路由协议的时候会讲到几个常用的几个,用户组播地址在CCIE中学习。

E类:仅供Internet实验和开发

注:A类前一位为0,B类前两位为10(其他位任意);C类前三位为110(其他位任意);D类前四位为1110(其他位任意);E类前五位为11110(其他位任意),其中127和0开头的为特殊地址;

ABC类地址的网络部分和主机部分

按照是否有固定的子网掩码,还可以分为有类无类

有类(主类) IP地址主要分为A、B、C类,每种类型固定的掩码。

无类 IP地址无论哪种类型的IP地址都没有固定掩码。

其中子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。 用来划分不同的网段。

番外

1.查看ip地址的方式

## Ubuntu
ifconfig
## windows
ipconfig

2.一种简单的确定网站ip的方式

ping www.baidu.com

3.爬虫与反爬虫

在反爬虫技巧中有一种方法是根据访问者的ip进行查封。当同一个ip短时间内大量出现,超过正常ip访问的次数的时候有的网站为了保护服务器会对该ip采取惩罚措施使其在一段时间内无法访问网站的服务。所以写爬虫的工程师一般会采用代理去访问被抓去的网站服务器,不断的切换代理地址来避免ip被封。

Reference

  • IP地址详解-你是谁
  • CCNA图文笔记-IP地址详解

http://www.niftyadmin.cn/n/1171104.html

相关文章

普通视图和物化视图的区别

物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。 普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询,这样并不能实质上提高查询的性能。 1、物…

Jquery(一) 初识Jquery,简单使用Jquery。

距离上一篇博文好像隔了很久的时间了额。好像是堕落了一阵子,前些时间去杭州找工作,被租房的事情给搞懵逼了,然后就回来了,回来在修炼一个月在出去奋斗把!加油,这两天把jquery,easyui和bootstra…

python练习6.19

企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于…

复杂 SQL 查询跑不动?DRDS 只读实例来解决!

2019独角兽企业重金招聘Python工程师标准>>> 背景 在实际业务生产环境中,业务应用系统在使用 OLTP 数据库将数据进行存储后,均会存在如后台运营类系统进行统计报表分析等场景的复杂 SQL 查询诉求。 为满足此类复杂 SQL 查询快速响应的需求&am…

spring/springMVC扫描配置中use-default-filters

一句看懂: use-default-filters是component-scan标签的一个属性,默认为true,指扫描“comtroller、repository、component、service”所有的注解类,如果为false,指关闭这个默认行为,需要手动指定扫描的注解…

python的__new__方法

https://www.cnblogs.com/kex1n/p/5991249.html https://blog.csdn.net/wwx890208/article/details/80534453 __init__()有一个参数self,该self参数就是__new__()返回的实例(原来__new__()返回的是实例.) 大家可能对Python中的__init__方法很熟悉,认为他…

python练习6.20

九九乘法表 for i in range(1,10):for j in range(1,10):print("%d*%d%-3ld " %(i,j,i*j),end)print()3ld为固定3格子的长度,如果不够用空格来代替。 水仙花数 for i in range(100,1000):alist(str(i))oneint(a[0])**3twoint(a[1])**3thrint(a[2])**3if…