参考自

IP,主机和域名


Content

在网络通信中,每个IP可唯一表示一台主机,在多网卡或者路由器等的情况下,每个主机可以有多个IP,通过哪个IP都可以找到该主机;但是IP地址是一个32位的数字,为了便于记忆,我们通常把Ip地址按字节划分,然后用十进制表示出来,即我们通常说的点分十进制(在IPV6的中采用的是冒号分十六进制).如下图的网络抓包,可以看到一个我们常见的IP地址:192.168.100.1的实际存在形式用16进制就是:c0 a8 64 01,用二进制表示就是:

11000000.10101000.01100100. 00000001

可以看到IP地址的可读性非常差,虽然用点分十进制表示之后,可读性有所提升,但是依然难以记忆,尤其是对于数字不敏感的老外,因此他们就想用易读的单词来替代这些纯数字,于是就诞生了主机名和域名.

在局域网中,每台主机都有一个主机名,可以使用英文字母或者单词组成的主机名来替代该主机的IP地址(这里假设主机只有一个网卡一个IP),这样就非常方便记忆,例如我们局域网中有一个主机名为:clsserv202的服务器,它的IP地址是:11.12.112.202,我们在使用IP地址11.12.112.202的地方使用clsserv202来替代它,例如我们要ping该主机,则可以执行命令:

ping clsserv202

ping 主机名和ping ip地址是一样的效果


这内部发生了什么事情呢?

在实际开发过程中,我们通常使用gethostbynamegethostbyaddr这两个系统函数,其中gethostbyname表示通过主机名来查询ip地址,即传入一个主机名或域名,它就给你返回一个ip地址;gethostbyaddr表示通过ip地址来查询主机名;
在ping命令源码中可以看到它就调用了gethostbyname函数将主机名转换成IP地址,然后才进行的ping操作.


Hosts文件

在linux系统中有个hosts文件来记录本机所在局域网中的主机的IP地址和对应的主机名,如下图所示:

ciruy@Ciruy:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 Ciruy

可以看到hosts文件由一行行的IP和主机名的对应关系组成,其中每行的开始是一个IP地址,紧接着IP地址(隔着空格)的就是该IP对应的主机名;

如果局域网中的所有主机都想使用域名来代替IP进行通信,那么要求该局域网中每个主机上的hosts文件都要把本局域网中的所有主机的主机名和IP的对应关系都存起来.但局域网内的主机非常多的时候维护起来就群非常麻烦,例如IP有变更的时候就需要挨个把所有的主机的hosts文件都更新一遍.


域名

那么有没有更好的方法来解决这个问题呢?
方法就是通过搭建内网DNS服务来完成主机名和IP的映射;

域名可以认为是主机在公网环境中的标识,在公网下,对应一个唯一的IP,例如我们访问百度的主页:www.baidu.com


主机名和域名的区别

实质上,主机名的含义是机器本身的名,域名是方便记录IP地址才做的一种IP映射;通过上述介绍可以看到,二者有共性:都能对应到一个唯一的IP上,从应用场景上可以这么简单理解二者的区别:主机名用于局域网中;域名用于公网中.

(转载)IP,主机名,域名相关推荐

  1. 主机名 域名 网站名 URL

    举几个域名的例子: google.com,baidu.com,163.com 可以明确的告诉你,加上www,就不再是域名了! 以http://mail.163.com/index.html为例进行说明 ...

  2. winows显示IP主机名bat

    公司中会有些妹妹,远程支持的时候问下 IP是多少,还不知道怎么查看的. 特此写了一个批处理文件 windows +R 键盘 输入 cmd cmd里输入 notepad 把下面的代码复制到打开的记事本里 ...

  3. (转载)IP、主机名和域名

    稍微提炼一下精要吧 1.多网卡(NIC)的情况下,一台主机会对应多个IP,所以使用域名查询IP的时候会出现很多不同的IP 2.无论是局域网还是公网,IP的记忆都是很麻烦的一件事情,所以采用主机名/域名 ...

  4. 查询主机名对应的IP地址-C语言

    查询主机名对应的IP地址 操作步骤: 编译:gcc getip.c -lws2_32 -o getip.exe 运行:getip 主机名 结果: 主机名 域名:DESKTOP-B1O7B1S查询结果: ...

  5. 秒级快速批量创建kvm虚拟机并指定IP地址和主机名

    1. 说明 kvm比起vmware来说最没有的功能就是用模板部署虚拟机的时候可以自定义ip地址,这对于大量创建vm的场景来说你需要一台台vnc的登录改动ip,显然是很累的,最近我就遇到这种场景(大型的 ...

  6. Linux永久修改主机名和IP

    Linux永久修改主机名和IP 文章目录 Linux永久修改主机名和IP 一.修改主机名 1.查看当前主机名 2.修改主机名的配置文件 3.要想通过主机名访问,还需要修改一个配置文件 4.然后执行`r ...

  7. 配置主机名与ip的映射关系

    本次进行简单的小实验 通过在windows上配置主机名与IP地址的映射关系,达到我们在xshell或其他远程连接设备上,不用IP地址登陆,只需要用主机名就能实现登陆的效果 配置 首先  需要查看自己虚 ...

  8. BSP(BUSINESS SERVER PAGES)完整主机名设置及实现

    一.说明 SAP系统的客户端一般是用GUI,但如果使用WEB作为交互界面,则需要激活及设定合适的系统参数,其中有一个重要参数icm/host_name_full是设定URL的完整主机名.完整主机名设置 ...

  9. 鸟哥的Linux私房菜(服务器)- 第十九章、主机名控制者: DNS 服务器

    第十九章.主机名控制者: DNS 服务器 最近更新日期:2011/08/05 我们都知道,在『记忆』的角色上,人脑总是不如计算机的,而人们对文字的印象又比数字高.因此,想要使用纯粹的 TCP/IP 来 ...

最新文章

  1. python 抛出异常与自定义异常raise
  2. Web前端技术分享:学习HTML和CSS的5大理由
  3. postgres 把一个表的值转成另一个表的字段名_Phoenix系列创建Phoenix映射表
  4. alibaba实习生代码大赛
  5. AutoCAD 2010建筑土木制图高清实例视频教程
  6. Asp.Net SignalR - 简单聊天室实现
  7. 【运维理论】RAID级别简介
  8. 最简单解决jpa自动生成表后字段乱序问题
  9. html5简单网页设计作品,30个以简约为主的网页设计作品
  10. 在ArrayLIst和LinkedList尾部加元素,谁的效率高
  11. 高级英语(张汉熙版)第一册学习笔记(原文及全文翻译)——2 - Hiroshima-The “Liveliest“ City in Japan (excerpts)(广岛——日本“最有活力”的城市)
  12. java 红包算法_JAVA实现拼手气红包算法
  13. 不一样的厦门,不一样的旅行!
  14. linux物联网项目,6个开源项目提升物联网开发效率
  15. 史上最经典的K线买入技巧
  16. 秒数转换为天,小时,分钟,秒的公式
  17. 【写文工具】常用文字表情
  18. 阿里云 服务器,云盾的ip占用大量流量的问题
  19. 在数据表中添加一个字段的SQL语句怎么写
  20. mos管怎样选型?新人必备MOS管正确选择的过程!

热门文章

  1. JavaWeb中验证码校验的功能实现
  2. linux之cut命令详解
  3. android 图片处理过程中添加进度条,『Android自定义View实战』给我一个图标,还你一个水波纹进度球...
  4. unix命令的一般格式是_Linux tree 命令详细使用说明
  5. 爱丁堡大学计算机专业alevel,爱丁堡大学alevel要求?
  6. arial字体可以商用吗_国外顶级设计公司:PPT配色与字体使用的7条建议
  7. 负载策略_面试官:讲一下什么是负载均衡,什么是轮询策略随机策略哈希策略
  8. android垂直公告,【Android之垂直翻页公告】
  9. linux+7+logger,linux日志logger命令详解
  10. mysql sql模式_MySQL SQL模式特点汇总