首页 > 所有文章 > 行业 >文章详情

c 获取ip地址格式(C语言获取外网ip地址)

时间:2023-10-29 17:04:56 浏览量:32


在网际层中,利用 IP 地址将数据传输到目的地。为了能够使数据正确地发送到目标主机上,网络上的 IP 地址必须有一定的规则来识别主机的位置。

为了便于寻址,了解目标主机的位置,每个 IP 地址包括两个标识码(ID),即网络 ID 和主机 ID。同一个物理网络上的所有主机都使用同一个网络 ID,网络上的一个主机(包括网络上的工作站、服务器和路由器等)有一个主机 ID 与其对应。
网络 ID 和主机 ID 含义如下:

大型网络包含大量的主机,而小型网络包含少量的主机。根据用户需求不同,一个网络包含的主机数量也会不同。为了满足不同场景的需要,网络必须使用一种方式来判断 IP 地址中哪一部分是网络 ID,哪一部分是主机 ID。
IP 地址为 32 位地址,被分为 4 个 8 位段。为了方便对 IP 地址的管理,将 IP 地址基本分为三大类。

每类地址的分类与含义如下:

除了上述的 A、B、C 三类地址以外,还有两类隐藏地址,即 D 类地址和E类地址:

IP 地址被分类以后,如何判断一个 IP 地址是 A 类、B 类还是 C 类地址呢?为了更好地进行区分,将每类地址的开头部分设置为固定数值,如图所示。



从上图中可以看出,每类 IP 地址都是以 32 位的二进制格式显示的,每类地址的区别如下:

由于每类地址的开头是固定的,因此每类地址都有自己的范围:

1) A类地址

2) B类地址

3) C类地址

数据在网络中进行传输是通过识别 IP 地址中的网络 ID,从而将数据发送到正确的网络中,然后再根据主机 ID 将数据发送到目标主机上。
如果一个网络中包含了百万台主机,数据通过网关找到对应的网络后,很难快速地发送到目标主机上。为了能够在大型网络中实现更高效的数据传输,需要进行子网划分,将网络划分为更小的网络。
子网划分是将 IP 地址的主机 ID 部分划分为子网 ID 和主机 ID。其中,子网 ID 用来寻找网络内的子网,主机 ID 用来寻找子网中的主机。


来自:

https://mp.weixin.qq.com/s/NXiBwnwVo-Y6GDXMALQCcg

欢迎来到『开源Linux』,这里是 Linux 爱好者的聚集地。专注分享Linux/Unix相关内容(包括Linux运维、Linux系统开发、网络编程、以及虚拟化和云计算等技术干货)。风里雨里,我们在这里等您,期待与您相遇。